Określ, czy $.błąd ajax to limit czasu

Używam magii jQuery.ajax( settings ).

Zastanawiam się jednak, czy ktoś często bawił się z ustawieniem timeout?

Wiem, że jest to w zasadzie do dyktowania czasu lokalnego dla żądania, ale czy może to wywołać cokolwiek, jeśli limit czasu zostanie osiągnięty? Czy po prostu przestaje słuchać odpowiedzi?

Czytając stronę jQuery, widzę, że nie ma przekazywanych argumentów, więc wygląda to na proste ustawienie z jedną możliwością. Co jest w porządku.

[[2]}ale chciałbym wyzwolić alert lub jakaś funkcja w przypadku osiągnięcia limitu czasu. Widzę, że ustawienie błędu nie zostanie wyzwalane, w tym przypadku.

Oto mój fragment:

$("form#testform").submit(function(){ 

 var allFormValues = $("form#testform").serialize(); 

   $.ajax({
    cache:false,
    timeout:8000,  // I chose 8 secs for kicks
    type:"POST",
    url:"someurl.php",
    data:allFormValues,
    error:function(){ alert("some error occurred") },
    success:function(response){ alert(response); }
   });

});

Czy ktoś wie jak pracować więcej z timeout?

Author: hjpotter92, 2010-08-23

1 answers

Jeśli procedura obsługi zdarzenia błędu pobiera trzy argumenty (xmlhttprequest, textstatus i message), gdy nastąpi limit czasu, arg stanu będzie 'timeout'.

Na jQuery documentation:

Możliwe wartości dla drugiej argumentami (oprócz null) są " timeout", "error", "notmodified" oraz "parsererror".

Możesz więc odpowiednio obsłużyć swój błąd.

Stworzyłem ten skrzypek który demonstruje to.

$.ajax({
    url: "/ajax_json_echo/",
    type: "GET",
    dataType: "json",
    timeout: 1000,
    success: function(response) { alert(response); },
    error: function(xmlhttprequest, textstatus, message) {
        if(textstatus==="timeout") {
            alert("got timeout");
        } else {
            alert(textstatus);
        }
    }
});​

Z jsFiddle, można przetestować połączenia ajax -- to będzie czekać 2 sekundy przed odpowiedzią. Ustawiłem timeout na 1 sekundę, więc powinno się błąd i przekazać z powrotem status tekstowy "timeout" do obsługi błędu.

Mam nadzieję, że to pomoże!
 332
Author: David Hoerster,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-26 18:24:38