3

こんにちは、ウェブサイトの応答時間を確認したいと思います。これが私のコードです。いくつかの値を取得しましたが、現実を示していません。これらのコードの問題は何ですか。それはキャッシュに関連していますか?? さらに、ページが終了しないか利用できない場合に表示する方法。

<script type="text/javascript" src="jquery.min.js"></script> <script type="text/javascript">
 var start = new Date();
 $.ajax ({
 url: 'http://www.example.com',
 complete : function()
 {
  alert(new Date() - start)
 },
        }); 
</script>
4

3 に答える 3

5

コード自体は、コードがチェックしているオリジンと同じオリジンで実行されていると仮定して問題ありません。両方のエンド (クライアントとサーバー) がCORSをサポートし、使用していない限り、 ajax クロスオリジンを使用することはできません。

確かに知るには、ブラウザツールを参照する必要があります(適切なブラウザには、開発者ツールにネットワークタブまたは類似のものがあります)。呼び出しで設定することでキャッシュを無効にすることもできます (詳細についてはcache: falseドキュメントを参照してください)。より良い方法は、このタイミングに使用している URL が、ブラウザ (およびプロキシ) にキャッシュしないように指示するキャッシュ ヘッダーで応答するようにすることです。ajaxajax

error関数をフックし、それが提供する情報を調べることで、ページが存在しないか、または「利用できない」(それが何を意味するにせよ) かどうかを判断できます。

var start = new Date();
$.ajax ({
    url: 'http://www.example.com',
    error : function(jqxhr, status, ex) {
        // Look at status here
    },
    complete : function()
    {
        alert(new Date() - start)
    },
}); 

に与えられた引数errorは、上記のリンク先のドキュメントにも記載されています。

于 2012-12-10T12:26:25.847 に答える
2

同じオリジン ポリシーのため、これを行うことはできません。

1 つのトリックは、イメージを作成し、onerror イベントが発生するまでの時間を測定することです。

var start = new Date();

var img = new Image();

img.onerror = function() {
    alert(new Date() - start);
};

img.src = 'http://www.example.com/';

キャッシュを防ぐために、URL に乱数を追加します。

于 2012-12-10T12:29:12.133 に答える
0

FirebugやChromeDeveloperToolsなどのブラウザー拡張機能を使用して、Ajaxの応答時間を測定します。

于 2012-12-10T12:40:27.810 に答える