2012-06-12 12 views
5

Mam skrypt jQuery, który odpytuje mój serwer o nowe dane, ale musi wyświetlić komunikat o błędzie, jeśli z jakiegoś powodu się nie powiedzie.jQuery/AJAX: Jak ustalić, kiedy host jest w trybie offline

Oto moja prośba 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 
     } 
}); 

Odkryłam, że jeśli zmiana nazwy query.php więc jest nieosiągalny, funkcja błędu wyzwala i wyświetlany jest komunikat. Jeśli jednak przejdę do trybu offline, funkcja błędu nie uruchomi się.

Jak mogę dostosować mój kod, aby wykryć, kiedy host jest nieosiągalny?

Odpowiedz

2

Powinieneś ustawić niski czas oczekiwania, a rzeczą do zapamiętania jest to, że sukces będzie nadal wywoływany, więc musisz sprawdzić, czy masz w tym momencie dane, aby wiedzieć, czy upłynął limit czasu, czy nie.

.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."); 
     } 
}); 
+0

To działało! Poprawiłem query.php, aby wywołać echo specjalnej instrukcji dla jQuery, aby wychwycić, gdy nie ma wyników, aby zapobiec fałszywym pozytywom. – ssh2ksh

Powiązane problemy