1

ajax呼び出しで1mbのファイルをダウンロードし、ダウンロード時間を確認しています。ここにコードがあります

var start = new Date();
$(document).ready(function() {    
    $.ajax ({
        url: 'https://www.example.com/dummyFile1024',
        crossDomain: true,
        dataType: "application/octet-stream",
        cache: false,
        async: false,    
        success : function()
        {
             var asd=(new Date() - start)
             alert(asd) 

        },    
        error : function(jqxhr, status, ex) {}   
    })
})

Chrome と Safari では、IE と Firefox ではなく、完全なファイルの読み込みを待機しています。開発者ツールネットワークで確認すると。Firefox で http/1.1 200 接続が確立され、サーバーへの接続時間が表示されます。クロム開発者ツールでは、接続が確立された後に保留され、完全なファイルをロードして値を警告します。これをすべてのブラウザで機能させるにはどうすればよいですか? PS別のファイルタイプjpegで試してみましたが、同じことが起こりました。firefox と ie はサーバー chrome への接続時間を表示し、safari は画像全体が読み込まれるまで待機していました。

4

1 に答える 1

1

まず、crossDomain 通信で同期リクエストを使用することはできません

「クロスドメイン リクエストと dataType: "jsonp" リクエストは同期操作をサポートしていません。同期リクエストはブラウザを一時的にロックし、リクエストがアクティブな間はすべてのアクションを無効にする可能性があることに注意してください。」

IE/firefox が「async: false」パラメータを無視している可能性があります。

次に、"complete" 関数を使用して、DL が終了したときにすべてのブラウザーにコードを実行させます。

于 2013-01-23T15:17:08.943 に答える