* <dt>mimeType<dd>'text/xml', 'audio/mpeg' 等。xhr.overrideMimeType する値\r
* <dt>auth<dd>X.OAuth2 インスタンス(OAuth2 サービスの定義)\r
* <dt>getFullHeaders<dd>getAllResponseHeaders() をパースしたハッシュを返す。値は配列になっている。XDR は Content-Type しか取得でいない。\r
- * <dt>canUse<dd>未実装。gadget proxy, YQL, YPipes 等のマッシュアップの許可。現在は test : 'gadget' としている\r
+ * <dt>canUse<dd>未実装。gadget proxy, YQL, <del>YPipes</del> 等のマッシュアップの許可。現在は test : 'gadget' としている\r
* </dl>\r
* \r
* <h4>JSONP 用プロパティ</h4>\r
var opt, url, type, auth;\r
\r
if( X_Type_isObject( opt = urlOrObject ) ){\r
+ //{+xhr\r
if( X_Type_isString( url = opt[ 'xhr' ] ) ){\r
type = X_NET_TYPE_XHR;\r
} else\r
+ //}+xhr\r
+ //{+jsonp\r
if( X_Type_isString( url = opt[ 'jsonp' ] ) ){\r
type = X_NET_TYPE_JSONP;\r
} else\r
+ //}+jsonp\r
+ //{+netimage\r
if( X_Type_isString( url = opt[ 'img' ] || opt[ 'image' ] ) ){\r
type = X_NET_TYPE_IMAGE;\r
} else\r
+ //}+netimage\r
+ //{+netform\r
if( X_Type_isString( url = opt[ 'form' ] ) ){\r
type = X_NET_TYPE_FORM;\r
- //{+dev\r
} else\r
+ //}+netform\r
if( !( type = X_NET_NAME_TO_ID[ opt[ 'type' ] ] ) ){\r
+ //{+dev\r
alert( 'X.Net args error' );\r
+ //}+dev\r
return;\r
- //}+dev\r
} else {\r
url = opt[ 'url' ];\r
};\r
\r
X_Pair_create( this, opt );\r
\r
- this[ 'listen' ]( [ X_EVENT_BEFORE_KILL_INSTANCE, X_EVENT_KILL_INSTANCE ], X_NET_proxyDispatch );\r
+ this[ 'listen' ]( X_EVENT_KILL_INSTANCE, X_NET_proxyDispatch );\r
\r
X_NET_QUEUE_LIST[ X_NET_QUEUE_LIST.length ] = this;\r
!X_NET_currentQueue && X_NET_shiftQueue();\r
var i, flag, auth;\r
\r
switch( e.type ){\r
- case X_EVENT_BEFORE_KILL_INSTANCE :\r
- if( this === X_NET_currentQueue && X_NET_completePhase ) return X_Callback_PREVENT_DEFAULT;\r
- break;\r
- \r
case X_EVENT_KILL_INSTANCE :\r
- i = X_NET_QUEUE_LIST.indexOf( this );\r
- \r
- if( i !== -1 ){\r
- X_NET_QUEUE_LIST.splice( i, 1 );\r
- flag = true;\r
+ if( this === X_NET_currentQueue && X_NET_completePhase ){\r
+ X_Pair_release( this );\r
+ X_NET_shiftQueue();\r
+ X_NET_completePhase = false;\r
} else\r
if( this === X_NET_currentQueue ){\r
X_NET_currentWrapper.cancel();\r
X_NET_shiftQueue();\r
flag = true;\r
+ } else\r
+ if( ( i = X_NET_QUEUE_LIST.indexOf( this ) ) !== -1 ){\r
+ X_NET_QUEUE_LIST.splice( i, 1 );\r
+ flag = true;\r
};\r
\r
if( flag ){ // flag が立つ場合、これは中断\r
};\r
\r
case X_EVENT_SUCCESS :\r
- case X_EVENT_TIMEOUT :\r
X_NET_completePhase = true;\r
this\r
[ 'listenOnce' ]( X_EVENT_COMPLETE, X_NET_proxyDispatch )\r
- [ 'unlisten' ]( [ X_EVENT_BEFORE_KILL_INSTANCE, X_EVENT_KILL_INSTANCE ], X_NET_proxyDispatch )\r
[ 'asyncDispatch' ]( e );\r
this[ 'asyncDispatch' ]( 32, { type : X_EVENT_COMPLETE, 'lastEventType' : e.type } );\r
break;\r
+\r
case X_EVENT_COMPLETE :\r
X_Pair_release( this );\r
X_NET_shiftQueue();\r
X_NET_completePhase = false;\r
+ this[ 'unlisten' ]( X_EVENT_KILL_INSTANCE, X_NET_proxyDispatch );\r
this[ 'kill' ]();\r
break;\r
};\r
if( X_NET_currentQueue ){\r
if( X_NET_currentWrapper._busy ) return;\r
X_NET_currentWrapper\r
- [ 'unlisten' ]( [ X_EVENT_PROGRESS, X_EVENT_SUCCESS, X_EVENT_ERROR, X_EVENT_TIMEOUT ], X_NET_currentQueue, X_NET_proxyDispatch )\r
+ [ 'unlisten' ]( [ X_EVENT_PROGRESS, X_EVENT_SUCCESS, X_EVENT_ERROR ], X_NET_currentQueue, X_NET_proxyDispatch )\r
.reset();\r
X_NET_currentQueue = X_NET_currentWrapper = X_NET_currentData = null;\r
};\r
break;\r
};\r
\r
- X_NET_currentWrapper[ 'listen' ]( [ X_EVENT_PROGRESS, X_EVENT_SUCCESS, X_EVENT_ERROR, X_EVENT_TIMEOUT ], X_NET_currentQueue, X_NET_proxyDispatch );\r
+ X_NET_currentWrapper[ 'listen' ]( [ X_EVENT_PROGRESS, X_EVENT_SUCCESS, X_EVENT_ERROR ], X_NET_currentQueue, X_NET_proxyDispatch );\r
\r
X_NET_currentWrapper.load( X_NET_currentData );\r
};\r