Heim > Artikel > Web-Frontend > jQuery AJAX-Timeout-Timeout-Notfallbehandlungsmethode
Dieses Mal werde ich Ihnen die jQuery-AJAX-Timeout-Notfallbehandlungsmethode vorstellen. Was sind die Vorsichtsmaßnahmen für die jQuery-AJAX-Timeout-Notfallbehandlung? Das Folgende ist ein praktischer Fall. Werfen wir einen Blick darauf.
Lassen Sie mich zunächst die Gründe für die Zeitüberschreitung analysieren:
1. Das Netzwerk ist nicht reibungslos.
2. Der Hintergrund läuft langsam (es kann leicht passieren, wenn der Server zum ersten Mal läuft)
Timeout-Ergebnis: Timeout in JQ legt das Anforderungs-Timeout fest.
Wenn die Antwortzeit des Servers die eingestellte Zeit überschreitet, geben Sie ERROR ein (Fehlerbehandlung )
Timeout-Lösung:
1. Das Standard-Timeout ist 0, was bedeutet, dass es nie zu einem Timeout kommt
2 Versuchen Sie, das Timeout so groß wie möglich einzustellen. Nachteile: Verlangsamt das Laden von Daten (scheinbar. Haha).
3. Schreiben Sie eine Funktion zur Timeout-Verarbeitung in der ERROR-Rückruffunktion : Sie können beispielsweise die Datenabruffunktion im Falle eines Timeouts erneut aufrufen.
---------------- ------ -------------------------------------------- -------- -
Es gibt eine Erfolgsfunktion in diesem Ajax. Sie gibt den Erfolg zurück und es gibt auch eine Rückgabefunktion namens Fehler
Wenn die Anfrage fehlschlägt, wird diese Funktion ausgelöst.
Ich denke, Sie können damit im Fehler umgehen.
Wenn diese Funktion ausgeführt wird, können Sie sie aufrufen Ihre zweite Ajax-Methode.
TimeOut-Timeout-Einstellungen und Ereignis-Ereignisbehandlung für jQuery und ExtJS.
TimeOut-Timeout-Einstellungen und Ereignis-Ereignisbehandlung für jQuery und ExtJS.
Anpassen das Timeout für Ajax-Anfragen und das entsprechende Timeout-Ereignis behandeln?
Für jQuery kann das Timeout den Timeout-Parameter direkt festlegen und den zweiten Parameter im Fehlerereignis erfassen. Wenn es sich um „Timeout“ handelt, bedeutet dies, dass das Timeout-Ereignis erfasst wird, was sehr klar ist.
Beispiel:
$.ajax({ type: "POST" , contentType: "application/json" , url: "../ws/MyService.asmx/test" , data: '{"email":"' +email+'"}' , timeout: 30000, //超时时间:30秒 dataType: 'json' , error: function (XMLHttpRequest, textStatus, errorThrown){ //TODO: 处理status, http status code,超时 408 // 注意:如果发生了错误,错误信息(第二个参数)除了得到null之外,还可能 //是"timeout", "error", "notmodified" 和 "parsererror"。 }, success: function (result) { // TODO: check result } });
Darüber hinaus enthält der erste vom Fehlerereignis zurückgegebene Parameter XMLHttpRequest einige nützliche Informationen:
XMLHttpRequest.readyState: Statuscode
0 – (Nicht initialisiert) Die send()-Methode wurde noch nicht aufgerufen
1 – (Laden) Die send()-Methode wurde aufgerufen und die Anfrage wird gesendet
2 – (Laden abgeschlossen) Die send()-Methode ist abgeschlossen und der gesamte Antwortinhalt wurde empfangen
3 – (Interaktion) Der Antwortinhalt wird analysiert
4 – (Abgeschlossen) Der Antwortinhalt wird analysiert und kann auf dem Client aufgerufen werden
XMLHttpRequest.status-Attribut: Einige Fehlercodes
HTTP
1xx-Informationsaufforderung
Diese Statuscodes repräsentieren vorübergehende Reaktionen. Der Kunde sollte darauf vorbereitet sein, eine oder mehrere 1xx-Antworten zu erhalten, bevor er eine reguläre Antwort erhält.
100-Weiter.
101-Switch-Protokoll.
2xx – Erfolg
Statuscodes wie dieser zeigen an, dass der Server die Client-Anfrage erfolgreich angenommen hat.
200-OK. Die Kundenanfrage war erfolgreich.
201-Erstellt.
202-Akzeptiert.
203-Nicht verbindliche Informationen.
204-Kein Inhalt.
205-Inhalt zurücksetzen.
206-Teil des Inhalts.
3xx-Redirect
Der Client-Browser muss zusätzliche Maßnahmen ergreifen, um die Anfrage zu erfüllen. Beispielsweise muss der Browser möglicherweise eine andere Seite auf dem Server anfordern oder die Anfrage über einen Proxyserver wiederholen.
301-Das Objekt wurde dauerhaft verschoben, also dauerhaft umgeleitet.
302-Das Objekt wurde vorübergehend verschoben.
304 – Unverändert.
307-Temporäre Weiterleitung.
4xx – Client-Fehler
Es ist ein Fehler aufgetreten und es scheint ein Problem mit dem Client zu geben. Beispielsweise fordert der Client eine Seite an, die nicht existiert, und stellt keine gültigen Authentifizierungsinformationen bereit. 400 – Ungültige Anfrage.
401-Zugriff verweigert. IIS definiert viele verschiedene 401-Fehler, die auf spezifischere Fehlerursachen hinweisen. Diese spezifischen Fehlercodes werden im Browser, aber nicht in den IIS-Protokollen angezeigt:
401.1 – Anmeldung fehlgeschlagen.
401.2 – Serverkonfiguration verursachte Anmeldefehler.
401.3 – Aufgrund der ACL-Einschränkung der Ressource nicht autorisiert.
401.4 – Filterautorisierung fehlgeschlagen.
401.5-ISAPI/CGI-Anwendungsautorisierung fehlgeschlagen.
401.7 – Der Zugriff wird durch die URL-Autorisierungsrichtlinie auf dem Webserver verweigert. Dieser Fehlercode ist spezifisch für IIS6.0.
403-Verboten: IIS definiert eine Reihe verschiedener 403-Fehler, die auf spezifischere Fehlerursachen hinweisen:
403.1-Ausführungszugriff ist verboten.
403.2 – Lesezugriff verboten.
403.3 – Schreibzugriff verboten.
403.4 – SSL erforderlich.
403.5 – SSL128 erforderlich.
403.6 – IP-Adresse verweigert.
403.7 – Client-Zertifikat erforderlich.
403.8 – Site-Zugriff verweigert.
403.9 – Zu viele Benutzer.
403.10 – Ungültige Konfiguration.
403.11-Passwortänderung.
403.12 – Zugriff auf Zuordnungstabelle verweigert.
403.13 – Client-Zertifikat widerrufen.
403.14 – Verzeichniseintrag abgelehnt.
403.15 – Client-Zugriffsberechtigung überschritten.
403.16 – Client-Zertifikat ist nicht vertrauenswürdig oder ungültig.
403.17 – Das Client-Zertifikat ist abgelaufen oder noch nicht gültig.
403.18 – Die angeforderte URL kann im aktuellen Anwendungspool nicht ausgeführt werden. Dieser Fehlercode ist spezifisch für IIS6.0.
403.19 – CGI kann für Clients in diesem Anwendungspool nicht durchgeführt werden. Dieser Fehlercode ist spezifisch für IIS6.0.
403.20-Passport-Anmeldung fehlgeschlagen. Dieser Fehlercode ist spezifisch für IIS6.0.
404 – Nicht gefunden.
404.0-(Keine) – Datei oder Verzeichnis nicht gefunden.
404.1 – Auf die Website kann über den angeforderten Port nicht zugegriffen werden.
404.2-Webdienst-Erweiterungssperrrichtlinie blockiert diese Anfrage.
404.3-MIME-Zuordnungsrichtlinie blockiert diese Anfrage.
405 – Das für den Zugriff auf diese Seite verwendete HTTP-Verb ist nicht zulässig (Methode nicht zulässig)
406 – Der Client-Browser akzeptiert den MIME-Typ der angeforderten Seite nicht.
407 – Proxy-Authentifizierung erforderlich.
412-Vorbedingung fehlgeschlagen.
413 – Die Anforderungsentität ist zu groß.
414 – Anforderungs-URI zu lang.
415 – Nicht unterstützter Medientyp.
416 – Der angeforderte Bereich kann nicht erfüllt werden.
417 – Ausführung fehlgeschlagen.
423 – Gesperrter Fehler.
5xx – Serverfehler
Der Server konnte die Anfrage nicht abschließen, da ein Fehler aufgetreten ist.
500 – Interner Serverfehler.
500.12 – Die Anwendung wird gerade auf dem Webserver neu gestartet.
500.13 – Der Webserver ist zu ausgelastet.
500.15 – Direkte Anfragen an Global.asa sind nicht zulässig.
500.16 – Falsche UNC-Autorisierungsdaten. Dieser Fehlercode ist spezifisch für IIS6.0.
500.18 – URL-Autorisierungsspeicher kann nicht geöffnet werden. Dieser Fehlercode ist spezifisch für IIS6.0.
500.100 – Interner ASP-Fehler.
501 – Header-Wert gibt eine nicht implementierte Konfiguration an.
502 – Der Webserver hat eine ungültige Antwort erhalten, während er als Gateway oder Proxyserver fungierte.
Zeitüberschreitung bei der 502.1-CGI-Anwendung.
502.2-CGI-Anwendungsfehler. Anwendung.
503 – Dienst nicht verfügbar. Dieser Fehlercode ist spezifisch für IIS6.0.
504-Gateway-Timeout.
505-HTTP-Version wird nicht unterstützt.
FTP
1xx – Positive erste Antwort
Diese Statuscodes zeigen an, dass ein Vorgang erfolgreich gestartet wurde, der Client jedoch eine weitere Antwort wünscht, bevor er mit dem neuen Befehl fortfährt.
110 Neu starten Antwort markieren.
120 Der Dienst ist bereit und startet in nnn Minuten.
125 Die Datenverbindung ist geöffnet und die Übertragung beginnt.
150 Dateistatus ist normal und bereit zum Öffnen der Datenverbindung.
2xx – Positive Abschlussantwort
Ein Vorgang wurde erfolgreich abgeschlossen. Clients können neue Befehle ausführen. 200 Befehl OK.
202 Befehl nicht ausgeführt, zu viele Befehle auf der Site.
211 Systemstatus oder Systemhilfeantwort.
212 Verzeichnisstatus.
213 Dateistatus.
214 Hilfemeldung.
215NAME-Systemtyp, wobei NAME der offizielle Systemname ist, der im AssignedNumbers-Dokument aufgeführt ist.
220 Der Dienst ist bereit, die Anfrage des neuen Benutzers auszuführen.
221 Der Dienst hat die Steuerverbindung geschlossen. Melden Sie sich ggf. ab.
225 Datenverbindung offen, keine Übertragung läuft.
226 Schließen Sie die Datenverbindung. Der angeforderte Dateivorgang war erfolgreich (z. B. Übertragen der Datei oder Verwerfen der Datei).
227 wechselt in den passiven Modus (h1, h2, h3, h4, p1, p2).
230 Benutzer haben sich angemeldet, fahren Sie fort.
250 Der angeforderte Dateivorgang ist korrekt und abgeschlossen.
257 „PATHNAME“ erstellt.
3xx – Positive Zwischenantwort
Der Befehl war erfolgreich, aber der Server benötigt weitere Informationen vom Client, um die Verarbeitung der Anfrage abzuschließen. 331 Der Benutzername ist korrekt und ein Passwort ist erforderlich.
332 Kontoanmeldung erforderlich.
350 Der angeforderte Dateivorgang wartet auf weitere Informationen.
4xx – Transient Negative Completion Reply
Der Befehl war nicht erfolgreich, aber der Fehler ist vorübergehend. Wenn der Client den Befehl wiederholt, kann er erfolgreich sein. 421 Dienst nicht verfügbar, Steuerverbindung wird geschlossen. Diese Antwort wird an jeden Befehl gesendet, wenn der Dienst feststellt, dass er heruntergefahren werden muss.
425 Datenverbindung kann nicht geöffnet werden.
426Connectionclosed;transferaborted.
450 Der angeforderte Dateivorgang wurde nicht ausgeführt. Die Datei ist nicht verfügbar (z. B. weil die Datei ausgelastet ist).
451 Der angeforderte Vorgang wurde abnormal beendet: Ein lokaler Fehler wird verarbeitet.
452 Der angeforderte Vorgang wurde nicht ausgeführt. Es ist nicht genügend Systemspeicherplatz vorhanden.
5xx – Permanente negative Abschlussantwort
Der Befehl war nicht erfolgreich und der Fehler ist dauerhaft. Wenn der Client den Befehl wiederholt, wird derselbe Fehler erneut angezeigt. 500Syntaxfehler, Befehl nicht erkannt. Dazu können Fehler wie eine zu lange Befehlszeile gehören.
501 Es liegt ein Syntaxfehler im Parameter vor.
502 Befehl nicht ausgeführt.
503 Fehlerhafte Befehlssequenz.
504 Der Befehl mit diesem Parameter wurde nicht ausgeführt.
530 Nicht angemeldet.
532 Zum Speichern von Dateien ist ein Konto erforderlich.
550 Der angeforderte Vorgang wurde nicht ausgeführt. Die Datei ist nicht verfügbar (z. B. Datei nicht gefunden, keine Zugriffsrechte).
551 Der angeforderte Vorgang wurde abnormal beendet: Unbekannter Seitentyp.
552 Der angeforderte Dateivorgang wurde abnormal beendet: Speicherzuweisung überschritten (für das aktuelle Verzeichnis oder den aktuellen Datensatz).
553 Der angeforderte Vorgang wurde nicht ausgeführt. Dateiname nicht zulässig.
Allgemeine FTP-Statuscodes und ihre Ursachen
150 – FTP verwendet zwei Ports: 21 zum Senden von Befehlen und 20 zum Senden von Daten. Der Statuscode 150 bedeutet, dass der Server sich darauf vorbereitet, eine neue Verbindung an Port 20 zu öffnen, um einige Daten zu senden.
226 – Der Befehl öffnet eine Datenverbindung auf Port 20, um Vorgänge wie das Übertragen von Dateien auszuführen. Der Vorgang wurde erfolgreich abgeschlossen und die Datenverbindung wurde geschlossen.
230 – Dieser Statuscode wird angezeigt, nachdem der Client das richtige Passwort gesendet hat. Dies bedeutet, dass sich der Benutzer erfolgreich angemeldet hat.
331 – Dieser Statuscode wird angezeigt, nachdem der Client den Benutzernamen gesendet hat. Dieser Statuscode wird unabhängig davon angezeigt, ob der angegebene Benutzername ein gültiges Konto im System ist.
426 – Der Befehl öffnete eine Datenverbindung, um einen Vorgang auszuführen, der Vorgang wurde jedoch abgebrochen und die Datenverbindung geschlossen.
530 – Dieser Statuscode bedeutet, dass sich der Benutzer nicht anmelden kann, da die Kombination aus Benutzername und Passwort ungültig ist. Wenn Sie sich mit einem Benutzerkonto anmelden, haben Sie möglicherweise den falschen Benutzernamen oder das falsche Passwort eingegeben oder Sie haben ausgewählt, nur anonymen Zugriff zuzulassen. Wenn Sie sich mit einem anonymen Konto anmelden, ist IIS möglicherweise so konfiguriert, dass der anonyme Zugriff verweigert wird.
550-命令未被执行,因为指定的文件不可用。例如,要GET的文件并不存在,或试图将文件PUT到您没有写入权限的目录。
ExtJS 的默认超时时间是30s,超过就会ajax请求失败,http status code 408。
设置ExtJS的超时时间方法需要用Ext.data.Connection 对象,并捕捉requestexception事件,例子:
var conn=new Ext.data.Connection({ url: "../ws/MyService.asmx/test" , timeout : 60000, //自定义超时时间,这里是60秒 (默认30s) autoAbort : false , disableCaching : true , method : "GET" }); var proxy = new Ext.data.HttpProxy(conn); proxy.getConnection().on("requestcomplete" , function (sender, response, options){ //成功,response.status = 200, response.statusText = 'OK' }); proxy.getConnection().on("requestexception" , function (sender, response, options){ //异常,捕捉 esponse.status ( http status code 代码 )和 response.statusText }); var store = new Ext.data.Store({ proxy: proxy, reader: myReader, //需要另外定义一个reader baseParams: {myargument:'myargumentValue' }, //改成你的参数名和值 remoteSort: false }); store.load();
相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!
推荐阅读:
Das obige ist der detaillierte Inhalt vonjQuery AJAX-Timeout-Timeout-Notfallbehandlungsmethode. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!