X_Net_XHR_msXMLVer = 0, \r
X_Net_XHR_msXML = X_Net_XHR_createMSXML && X_Net_XHR_createMSXML( true ),\r
\r
- X_Net_XHR_neverReuse = X_UA[ 'IE' ] < 9, // ie7,8 の xhr はリユース不可。msxml はリユース可能。\r
+ X_Net_XHR_neverReuse = X_UA[ 'IE' ] < 9 || X_UA[ 'iOS' ] || X_UA[ 'Android' ], // ie7,8 の xhr はリユース不可。msxml はリユース可能。\r
\r
X_Net_XHR_TYPE_FLASH = 8,\r
X_Net_XHR_TYPE_GADGET = 16;\r
data = raw[ 'response' ] || raw[ 'responseText' ]; // とりあえず\r
break;\r
};\r
-\r
X_NET_XHRWrapper[ 'asyncDispatch' ]( 32, { type : X_EVENT_SUCCESS, status : status || 200, response : data, 'headers' : headers || null } );\r
} else {\r
X_NET_XHRWrapper[ 'asyncDispatch' ]( 32, { type : X_EVENT_ERROR, status : status || 400, 'headers' : headers || null } );\r
\r
case 'progress' :\r
if( e.lengthComputable ){\r
- X_NET_XHRWrapper._percent = e.loaded / e.total;\r
- live && X_NET_XHRWrapper[ 'asyncDispatch' ]( { type : X_EVENT_PROGRESS, 'percent' : X_NET_XHRWrapper._percent } );\r
+ X_NET_XHRWrapper._percent = e.loaded / e.total * 100;\r
+ live && X_NET_XHRWrapper._percent < 100 && X_NET_XHRWrapper[ 'asyncDispatch' ]( { type : X_EVENT_PROGRESS, 'percent' : X_NET_XHRWrapper._percent } );\r
};\r
break;\r
\r
},\r
\r
onUploadProgress : X_Net_XHR_upload && function( e ){\r
- var raw = X_NET_XHRWrapper[ '_rawObject' ].upload,\r
- live = !X_NET_XHRWrapper._canceled,\r
- states, data;\r
- live && X_NET_XHRWrapper[ 'asyncDispatch' ]( { type : X_EVENT_PROGRESS, 'percent' : X_NET_XHRWrapper._percent, 'uploadPercent' : ( e.loaded / e.total ) } );\r
+ !X_NET_XHRWrapper._canceled &&\r
+ X_NET_XHRWrapper[ 'asyncDispatch' ]( {\r
+ type : X_EVENT_PROGRESS,\r
+ 'percent' : X_NET_XHRWrapper._percent,\r
+ 'uploadPercent' : e.loaded / e.total * 100\r
+ } );\r
}\r
};\r
// 同期リクエストでなければならない場合, unload, beforeunload時\r