1

文字列でデータを渡すこの非常に特定の例のロードでタイムアウトを設定するにはどうすればよいですか? compare_proc.php api からロードされるはずの Google チャートに時間がかかっているようです...クリックイベントで空白の結果が得られ、compare.php からチャートがロードされることを期待しているため..この特定の Jquery 操作のタイムアウトを設定する方法に感謝します。ありがとう !

    jQuery(document).ready(function() {
          $("#opposition a").click(function(e) {
          var first_id  = $(this).attr('id');
          var second_id = $("h1").attr('id');
          $("div#test").load('compare_proc.php','id=' + first_id + '&id2=' + second_id);
          e.preventDefault();
            });
});
4

1 に答える 1

3

jQueryload()メソッドはパラメーターを受け入れませんsettings。そのため、より低レベルのメソッドajax()呼び出しに置き換える必要がありますtimeout。これにより、この特定のリクエストの設定を指定できます。それを行う1つの可能な方法:

$.ajax('compare_proc.php', {
  data: 'id=' + first_id + '&id2=' + second_id,
  timeout: someTimeoutInMs,
  success: function(resp) {
    $('#test').html(resp);
  }
});

別の方法としては、コードをそのままにし、代わりにajaxSetup()呼び出しを使用してグローバル AJAX 設定を変更します (を呼び出す前にload)。この API の使用は、ドキュメント ページで強く推奨されていないことに注意してください。

ここで指定した設定は、や などの AJAX ベースの派生物へのすべての呼び出しに影響します。これは、他の呼び出し元 (プラグインなど) が通常のデフォルト設定を期待している可能性があるため、望ましくない動作を引き起こす可能性があります。そのため、この API を使用しないことを強くお勧めします。代わりに、呼び出しで明示的にオプションを設定するか、単純なプラグインを定義してください。$.ajax$.get()

それでも、あなたの場合(タイムアウト設定のみが変更された場合)、そのようにしても問題ない場合があります。

于 2013-04-21T08:29:46.553 に答える