5

サーバーをポーリングして新しいデータを取得する jQuery スクリプトがありますが、何らかの理由で失敗した場合はエラー メッセージを表示する必要があります。

これが私のAJAXリクエストです:

$.ajax({
    url: "query.php", // This just runs some MySQL queries and echos the results
    cache: false,
    error: function() {
       $(".status").text("Server is offline.");
       },
    success: function(html) {
       // Everything went fine, append query results to div
       }
});

query.php の名前を変更してアクセスできないようにすると、エラー関数がトリガーされ、メッセージが表示されることがわかりました。ただし、Web サーバーをオフラインにすると、エラー関数はトリガーされません。

ホストに到達できないときを検出するようにコードを適応させるにはどうすればよいですか?

4

1 に答える 1

2

タイムアウトを低く設定する必要があります。注意すべきことは、成功が引き続き呼び出されるため、タイムアウトしたかどうかを知るために、その時点でデータがあるかどうかを確認する必要があることです。

.ajax({
    url: "query.php", // This just runs some MySQL queries and echos the results
    cache: false,
    timeout: 4000, // 4 seconds
    error: function() {
       $(".status").text("Unable to retrieve data.");
       },
    success: function(html) {
       if (html) {
           // Everything went fine, append query results to div
       }
       else {
           $(".status").text("Server is offline.");
       }
});
于 2012-06-12T01:27:38.887 に答える