X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=0.6.x%2Fjs%2F06_net%2F00_XNet.js;h=90693963a7b992dd65e4e0d73dccea361c80d8ee;hb=4e4ab3be10850546063d4a4b93250ed142bb8cd2;hp=2dc443287c9088c638368378d081c7362f0eda08;hpb=7648af07e9f87b97d09f4b20015ba95813f3665b;p=pettanr%2FclientJs.git
diff --git a/0.6.x/js/06_net/00_XNet.js b/0.6.x/js/06_net/00_XNet.js
index 2dc4432..9069396 100644
--- a/0.6.x/js/06_net/00_XNet.js
+++ b/0.6.x/js/06_net/00_XNet.js
@@ -22,9 +22,10 @@
*
å¿
é ããããã£
*
* - url
- URL
- *
- type
- 'xhr', 'jsonp', 'image', 'img'
+ *
- type
- 'xhr', 'jsonp', 'form', 'image', 'img'
*
- xhr
- URL { url : 'hoge', type : 'xhr' } ã®çç¥å½¢
*
- jsonp
- URL { url : 'hoge', type : 'jsonp' } ã®çç¥å½¢
+ *
- form
- URL { url : 'hoge', type : 'form' } ã®çç¥å½¢
*
- image, img
- URL { url : 'hoge', type : 'image' } ã®çç¥å½¢
*
* XHR ç¨ããããã£
@@ -50,14 +51,16 @@
* paramsurl ãã©ã¡ã¼ã¿ã object ã§æ¸¡ããã¨ãåºæ¥ãã
* callbackNamecallback(json) ã³ã¼ã«ããã¯åãåºå®ããã¦ããéã«æå®ãã¾ã㯠&callback=hoge 以å¤ã®ååã§ã³ã¼ã«ããã¯ãæå®ããå ´åã« params 㨠callbackName ã«æ¸ãã¦ãããurl ãã©ã¡ã¼ã¿ã« callback ãç¡ããcallbackName ããªãå ´åããã¬ã¼ã ã¯ã¼ã¯å
ã§èªåã§è¨å®ããã
* charsetãã¼ã¸ã¨ç°ãªãjsonpãèªã¿è¾¼ãå ´åã«æå® 'EUC-JP', 'Shift-JIS' ç script ã¿ã°ã® charset ã«å
¥ããhttps://code.google.com/p/ajaxzip3/issues/detail?id=5
- * useFireWallç°ãªããã¡ã¤ã³ã« jsonp ãèªã¿è¾¼ãã å¾ãxdomain iframe éä¿¡ã使ã£ã¦ãã¼ã¿ãåãåããä¸æ£ãªã³ã¼ãã®å®è¡ãé²ããã¨ãåºæ¥ããæªå®è£
+ * useFireWallç°ãªããã¡ã¤ã³ã« jsonp ãèªã¿è¾¼ãã å¾ãxdomain iframe éä¿¡ã使ã£ã¦ãã¼ã¿ãåãåããä¸æ£ãªã³ã¼ãã®å®è¡ãé²ããã¨ãåºæ¥ã(ã¯ã)ãæªå®è£
*
*
* Form ç¨ããããã£
*
- * - params
- url ãã©ã¡ã¼ã¿ã object ã§æ¸¡ããã¨ãåºæ¥ãã
*
- method
- 'GET' or 'POST'
- *
- target
- '_self', '_parent', '_top' ã®å ´åããã¼ã¸ããé¢è±ãããtarget ãæå®ããåä¸ãã¡ã¤ã³ã®å ´å response ã« body.innerHTML ãè¿ãã
+ *
- params
- ãã©ã¡ã¼ã¿ object 㯠input ã¿ã°ã® name & value ã«å±éããããobject ãå
¥ãåã«ãããã¨ã¯ã§ããªãã
+ *
- target
- '_self', '_parent', '_top' ã®å ´åããã¼ã¸ããé¢è±ãããtarget ãæå®ããåä¸ãã¡ã¤ã³ã®å ´å response ã« body.innerHTML ãè¿ããTODO X.Window
+ *
- timeout
- ms ã¿ã¤ã ã¢ã¦ãæéãçç¥å¯è½
+ *
- charset
- æªå®è£
*
*
* @alias X.Net
@@ -155,8 +158,8 @@ X[ 'Net' ] = X_EventDispatcher[ 'inherits' ](
opt[ 'auth' ] = auth; // auth 㯠deep copy ãããã¨ã¾ãã
};
- // params ã url ã«è¿½å
- if( opt[ 'params' ] ){
+ // params ã url ã«è¿½å ä½ã form ã¯é¤ã
+ if( opt[ 'params' ] && type !== X_NET_TYPE_FORM ){
url = X_URL_create( url, opt[ 'params' ] );
delete opt[ 'params' ];
};
@@ -166,14 +169,14 @@ X[ 'Net' ] = X_EventDispatcher[ 'inherits' ](
// XDomain ä¸å¯ -> Flash, Gears, Silverlight, canUseGadget ãªã gadget ã«åæ¿?
// PUT DELETE UPDATE ä¸å¯ -> Flash, Gears, Silverlight, canUseGadget ãªã gadget ã«åæ¿?
- // xãããã³ã« 㪠binary ã®ãã¼ã -> gadget å
㧠proxyURL ã«ãã XHR
+ // xãããã³ã«(X_URL_isSameProtocol) 㪠binary ã®ãã¼ã -> gadget å
㧠proxyURL ã«ãã XHR
// or X_EVENT_ERROR
opt[ 'dataType' ] = opt[ 'dataType' ] || X_URL_getEXT( url );
};
opt.netType = type;
- opt[ 'url' ] = url;
+ opt[ 'url' ] = url;
X_Pair_create( this, opt );
@@ -218,11 +221,11 @@ var X_NET_TYPE_XHR = 1,
X_NET_QUEUE_LIST = [],
- X_NET_XHRWrapper,
- X_NET_JSONPWrapper,
- X_NET_FormWrapper,
- X_NET_ImageWrapper,
- X_NET_GIMRWrapper,
+ X_XHR,
+ X_JSONP,
+ X_FormSender,
+ X_ImgLoader,
+ X_GadgetXHR,
X_NET_currentWrapper,
X_NET_currentQueue,
@@ -239,13 +242,13 @@ function X_NET_proxyDispatch( e ){
this[ 'unlisten' ]( X_EVENT_COMPLETE, X_NET_proxyDispatch )
[ 'dispatch' ]( X_EVENT_COMPLETE );
};
- X_NET_shiftQueue();
+ X_NET_shiftQueue( true );
X_Pair_release( this );
X_NET_completePhase = 0;
} else
if( this === X_NET_currentQueue ){
X_NET_currentWrapper.cancel();
- X_NET_shiftQueue();
+ X_NET_shiftQueue( true );
flag = true;
} else
if( ( i = X_NET_QUEUE_LIST.indexOf( this ) ) !== -1 ){
@@ -286,11 +289,12 @@ function X_NET_proxyDispatch( e ){
};
};
-function X_NET_shiftQueue(){
- var auth, authSettings;
+// TODO _busy 㯠X.Net ã§è§¦ã.
+function X_NET_shiftQueue( currentKilled ){
+ var q, auth, authSettings;
if( X_NET_currentQueue ){
- if( X_NET_currentWrapper._busy ) return;
+ if( !currentKilled ) return;
X_NET_currentWrapper
[ 'unlisten' ]( [ X_EVENT_PROGRESS, X_EVENT_SUCCESS, X_EVENT_ERROR ], X_NET_currentQueue, X_NET_proxyDispatch )
@@ -299,9 +303,12 @@ function X_NET_shiftQueue(){
X_NET_currentQueue = X_NET_currentWrapper = X_NET_currentData = null;
};
+ console.log( 'â â ------------ X_NET_shiftQueue ' + X_NET_QUEUE_LIST.length );
+
if( !X_NET_QUEUE_LIST.length ) return;
- X_NET_currentQueue = X_NET_QUEUE_LIST.shift();
+
+ X_NET_currentQueue = q = X_NET_QUEUE_LIST.shift();
X_NET_currentData = X_Pair_get( X_NET_currentQueue );
switch( X_NET_currentData.netType ){
@@ -311,13 +318,13 @@ function X_NET_shiftQueue(){
// force 'gadget', 'flash'
switch( X_NET_currentData[ 'test' ] ){
case 'gadget' :
- X_NET_currentWrapper = X_NET_GIMRWrapper || X_TEMP.X_Net_GIMR_init();
+ X_NET_currentWrapper = X_GadgetXHR || X_TEMP.X_GadgetXHR_init();
break;
case 'flash' :
break;
default :
- X_NET_currentWrapper = X_NET_XHRWrapper || X_TEMP.X_Net_XHR_init();
+ X_NET_currentWrapper = X_XHR || X_TEMP.X_XHR_init();
};
@@ -328,13 +335,18 @@ function X_NET_shiftQueue(){
case 0 :
case 1 :
case 2 :
- if( !( auth[ 'dispatch' ]( X_EVENT_NEED_AUTH ) & X_Callback_PREVENT_DEFAULT ) ){
- authSettings.lazyRequests = authSettings.lazyRequests || [];
- authSettings.lazyRequests.indexOf( X_NET_currentQueue ) === -1 && authSettings.lazyRequests.push( X_NET_currentQueue );
+ if( !( auth[ 'dispatch' ]( X_EVENT_NEED_AUTH ) & X_CALLBACK_PREVENT_DEFAULT ) ){
+ // event å
㧠kill ããã¦ããªããã¨ã確èª
+ if( X_NET_currentQueue === q ){
+ authSettings.lazyRequests = authSettings.lazyRequests || [];
+ authSettings.lazyRequests.indexOf( q ) === -1 && authSettings.lazyRequests.push( q );
+ X_NET_currentQueue = null;
+ X_NET_shiftQueue();
+ };
+ } else {
+ X_NET_currentQueue === q && q[ 'kill' ]();
};
- X_NET_currentQueue = null;
- X_NET_shiftQueue();
- break;
+ return;
case 3 : // refresh token
X_NET_QUEUE_LIST.push( X_NET_currentQueue );
X_NET_currentQueue = null;
@@ -345,13 +357,13 @@ function X_NET_shiftQueue(){
};
break;
case X_NET_TYPE_JSONP :
- X_NET_currentWrapper = X_NET_JSONPWrapper || X_TEMP.X_NET_JSONP_init();
+ X_NET_currentWrapper = X_JSONP || X_TEMP.X_JSONP_init();
break;
case X_NET_TYPE_FORM :
- X_NET_currentWrapper = X_NET_FormWrapper || X_TEMP.X_NET_Form_init();
+ X_NET_currentWrapper = X_FormSender || X_TEMP.X_FormSender_init();
break;
case X_NET_TYPE_IMAGE :
- X_NET_currentWrapper = X_NET_ImageWrapper || X_TEMP.X_NET_Image_init();
+ X_NET_currentWrapper = X_ImgLoader || X_TEMP.X_ImgLoader_init();
break;
};