12

Java でサイトを開発しています。私は次のようにjquery、ajaxを使用しています:

$.ajax({
    dataType: "json",
    url : 'getWords.htm',
    type: 'post',
    async : false,
    data : {dataJSON : JSON.stringify(dataJSON)},
    success : function(words) {
        .....
    }
});

うまく動作していますが、Chrome では Firefox、IE、Opera よりも動作が遅くなります。Chrome では少し遅延があります (約 0.8 秒)。1 回のクリックで 4 つの ajax クエリがあると、非常に遅くなります。どうすれば修正できますか?

firebug では、5 ミリ秒の送信、512 ミリ秒の待機、3 ミリ秒の受信が表示されますが、他のブラウザーではすべて高速です。

ありがとう。

4

4 に答える 4

3

のコンテンツを動的に生成された要素にロードしていない場合は、代わりに の.post()中に入れてみてください。それは私にとってはうまくいきました。それが役に立てば幸い!window.onload$(document).ready

アップデート

click post()() イベントで起動されるため、親要素は準備ができている必要があります。post()ただし、外部で関数を呼び出して結果を変数$(document).readyに保存すると、しばらくの間勝つ可能性があります。javascriptこれはinitialValue、ユーザーが要素を 2 回目にクリックしたときに更新する必要があるものとして機能します。

于 2012-06-24T10:42:31.953 に答える
1

を使用しasync: 'true'ます。

これはデフォルトであり、よほどの理由がない限り、同期リクエストに切り替えるべきではありません。最初に、ブラウザーがファイルを並行してダウンロードできるようになり、2 番目の同期要求がブラウザー スレッドをブロックする可能性があります。

ちなみに、「jQuery 1.8 以降、async: false の使用は非推奨です。」( jQuery.ajax ドキュメントから)

于 2012-06-24T10:52:56.683 に答える
1

少し前に似たようなことがあり、AJAX、POST、または GET を呼び出したときの応答時間がブラウザごとに異なりました。あなたの場合、「getWords.htm」というURLから渡していたのは膨大な量のデータであることが判明しました。あなたのケースで何が問題なのかを判断するのに役立ついくつかの質問:

  1. 送り返すデータの量とフォーマットは何ですか? JSON を試して "SUCCESS" 関数で解析し、HTML コード/ページを生成します。
  2. 一度にいくつの DOM オブジェクトを生成しようとしていますか? クライアント側で JSON を取得し、そこから動的に HTML を生成すると、必要なものをその場で解析するのに非常に役立ちます。
于 2013-02-20T17:40:50.413 に答える
-3

Googleに保存されているものではなく、マシンでjqueryを使用する方が良い場合があります。あなたが持っているインターネット接続に依存します

ローカル

<script type="text/javascript" src="/js/jQuery.min.js"></script>

Google からの API

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js" type="text/javascript"></script>
于 2013-01-21T14:32:50.670 に答える