この質問は私の前の質問に関連しています: ブラウザ間でREADYSTATE_LOADEDですか?
だから私はreadyStateがブラウザ間で信頼できないことを知っています。私は現在、この時点で任意のブラウザで概念実証を実行しようとしています。
私はプラグインを使用していて、次のようなコードがあります。
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function(){
if (xhr.readyState == 4){
self._onComplete(id, xhr);
}
else if (xhr.readyState == 2 ){
self._onSent( id, xhr );
}
};
コールバックをログに記録すると、サーバー側スクリプトが応答した後、「complete」の直前に「sent」が発生します。readyState 2とは何か誤解していますか?キックに1を試しましたが、サーバーが応答する前に起動しませんでした。
少なくとも「progress」イベントがあるxhrオブジェクトのuploadオブジェクトを調べましたが、進行状況については何もわかりませんでした。実際、最後の進行状況が97%の場合、ファイルがサーバーへの送信を完了するときに100%で起動することはありません。したがって、サーバーがアップロードを処理している間、readyStateが4になる前に、進行状況は97%でハングします。
これにより、ユーザーは、実際にはアップロードが完全に上がったとしても、アップロードが停止したと考えるようになります。