Maison  >  Article  >  interface Web  >  jQuery AJAX timeout timeout méthode de gestion d'urgence

jQuery AJAX timeout timeout méthode de gestion d'urgence

php中世界最好的语言
php中世界最好的语言original
2018-04-23 17:18:384655parcourir

Cette fois, je vais vous présenter la méthode de gestion d'urgence du délai d'attente jQuery AJAX, quelles sont les précautions pour la gestion d'urgence du délai d'attente jQuery AJAX, ce qui suit est un cas pratique, jetons un coup d'oeil.

Permettez-moi d'abord d'analyser les raisons du délai d'attente :

1 Le réseau n'est pas fluide.

2. L'arrière-plan s'exécute lentement (cela se produit facilement lorsque le serveur s'exécute pour la première fois)

Résultat du délai d'attente : le délai d'attente dans JQ définit le délai d'expiration de la requête.

Si le temps de réponse du serveur dépasse le temps défini, saisissez ERREUR (Gestion des erreurs )

Solution de délai d'attente :

1. Le délai d'expiration par défaut est 0, ce qui signifie qu'il n'expirera jamais

2 Essayez de définir le délai d'attente aussi grand que possible. Inconvénients : Ralentit le chargement des données (apparemment. Haha).

3. Écrivez une fonction sur le traitement du délai d'attente dans la fonction de rappel ERROR  : par exemple, vous pouvez appeler à nouveau la fonction de récupération de données en cas d'expiration.

------------------------------------------------------ ------ -------------------------------------------- -------- ----------------

Il y a une fonction de succès dans cet ajax. Elle renvoie le succès et il y a aussi une fonction de retour appelée. erreur

Si la requête échoue, cette fonction sera déclenchée.

Je pense que vous pouvez le gérer dans l'erreur.

Si cette fonction est exécutée, alors vous pouvez appeler votre deuxième méthode ajax.

Paramètres de délai d'expiration timeOut et gestion des événements pour jQuery et ExtJS.

Paramètres de délai d'expiration timeOut et gestion des événements pour jQuery et ExtJS.

Comment personnaliser le délai d'attente pour les requêtes ajax, et gérer l'événement de délai d'attente correspondant ?

Pour jQuery, le timeout peut définir directement le paramètre timeout et capturer le deuxième paramètre dans l'événement d'erreur. S'il s'agit de "timeout", cela signifie que l'événement timeout est capturé, ce qui est très clair.

Exemple :

$.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
}
});

De plus, le premier paramètre XMLHttpRequest renvoyé par l'événement d'erreur contient des informations utiles :

XMLHttpRequest.readyState : Code d'état

0 - (Non initialisé) La méthode send() n'a pas encore été appelée

1 - (Chargement) La méthode send() a été appelée et la requête est en cours d'envoi

2 - (Chargement terminé) La méthode send() est terminée et tout le contenu de la réponse a été reçu

3 - (Interaction) Le contenu de la réponse est en cours d'analyse

4 - (Complet) Le contenu de la réponse est analysé et peut être appelé sur le client

Attribut XMLHttpRequest.status : Certains codes d'erreur

HTTP

1xx-Invite d'information

Ces codes d'état représentent réponses temporaires. Le client doit être prêt à recevoir une ou plusieurs réponses 1xx avant de recevoir une réponse régulière.

100-Continuer.

Protocole 101-Switch.

2xx - Succès

Des codes de statut comme celui-ci indiquent que le serveur a accepté avec succès la demande du client.

200-OK. La demande du client a réussi.

201-Créé.

202-Accepté.

203-Informations ne faisant pas autorité.

204-Aucun contenu.

205-Réinitialiser le contenu.

206-Une partie du contenu.

3xx-Redirect

Le navigateur client doit prendre des mesures supplémentaires pour répondre à la demande. Par exemple, le navigateur devra peut-être demander une page différente sur le serveur ou répéter la demande via un serveur proxy.

301-L'objet a été définitivement déplacé, c'est-à-dire redirigé définitivement.

302-L'objet a été temporairement déplacé.

304-Non modifié.

307-Redirection temporaire.

4xx - Erreur client

Une erreur s'est produite et il semble y avoir un problème avec le client. Par exemple, le client demande une page qui n'existe pas et le client ne fournit pas d'informations d'authentification valides. 400 - Mauvaise demande.

401-Accès refusé. IIS définit de nombreuses erreurs 401 différentes, qui indiquent des causes d'erreur plus spécifiques. Ces codes d'erreur spécifiques apparaissent dans le navigateur mais pas dans les journaux IIS :

401.1 - Échec de la connexion.

401.2 - La configuration du serveur a provoqué un échec de connexion.

401.3 - Non autorisé en raison de restrictions ACL sur les ressources.

401.4 - L'autorisation du filtre a échoué.

L'autorisation de l'application 401.5-ISAPI/CGI a échoué.

401.7 – L’accès est refusé par la politique d’autorisation URL sur le serveur Web. Ce code d'erreur est spécifique à IIS6.0.

403-Interdit : IIS définit un certain nombre d'erreurs 403 différentes, qui indiquent des causes d'erreur plus spécifiques :

403.1-L'accès à l'exécution est interdit.

403.2 - Accès en lecture interdit.

403.3 - Accès en écriture interdit.

403.4 - SSL requis.

403.5 - SSL128 requis.

403.6 - Adresse IP refusée.

403.7 - Certificat client requis.

403.8 - Accès au site refusé.

403.9-Trop d'utilisateurs.

403.10 - Configuration invalide.

403.11-Changement de mot de passe.

403.12 - Accès à la table de mappage refusé.

403.13 - Certificat client révoqué.

403.14 - Inscription dans l'annuaire refusée.

403.15 - Autorisation d'accès client dépassée.

403.16 - Le certificat client n'est pas fiable ou n'est pas valide.

403.17 - Le certificat client a expiré ou n'est pas encore valide.

403.18 - L'URL demandée ne peut pas être exécutée dans le pool d'applications actuel. Ce code d'erreur est spécifique à IIS6.0.

403.19 - CGI ne peut pas être exécuté pour les clients de ce pool d'applications. Ce code d'erreur est spécifique à IIS6.0.

403.20-La connexion au passeport a échoué. Ce code d'erreur est spécifique à IIS6.0.

404-Introuvable.

404.0-(Aucun) – Fichier ou répertoire introuvable.

404.1 - Le site Web n'est pas accessible sur le port demandé.

404.2-La politique de verrouillage de l'extension du service Web bloque cette demande.

La politique de mappage 404.3-MIME bloque cette demande.

405 - Le verbe HTTP utilisé pour accéder à cette page n'est pas autorisé (méthode non autorisée)

406 - Le navigateur client n'accepte pas le type MIME de la page demandée.

407 - Authentification proxy requise.

412-La précondition a échoué.

413 – L’entité de requête est trop grande.

414-URI de demande trop long.

415 – Type de média non pris en charge.

416 – La plage demandée ne peut pas être satisfaite.

417 – L’exécution a échoué.

423 – Erreur verrouillée.

5xx - Erreur du serveur

Le serveur n'a pas pu terminer la demande car il a rencontré une erreur.

500 - Erreur interne du serveur.

500.12 - L'application est en train de redémarrer sur le serveur web.

500.13 - Le serveur web est trop occupé.

500.15 - Les demandes directes à Global.asa ne sont pas autorisées.

500.16 – Informations d’autorisation UNC incorrectes. Ce code d'erreur est spécifique à IIS6.0.

500.18 – Le stockage d'autorisation d'URL ne peut pas être ouvert. Ce code d'erreur est spécifique à IIS6.0.

500.100 - Erreur ASP interne.

501 - La valeur d'en-tête spécifie une configuration non implémentée.

502 - Le serveur Web a reçu une réponse non valide alors qu'il agissait en tant que passerelle ou serveur proxy.

L'application 502.1-CGI a expiré.

Erreur d'application 502.2-CGI. application.

503 - Service indisponible. Ce code d'erreur est spécifique à IIS6.0.

504-Délai d'expiration de la passerelle.

La version 505-HTTP n'est pas prise en charge.

FTP

1xx - Réponse initiale positive

Ces codes d'état indiquent qu'une opération a démarré avec succès, mais que le client souhaite une autre réponse avant de procéder à la nouvelle commande.

110 Redémarrez la réponse.

Le service 120 est prêt et démarrera dans nnn minutes.

125 La connexion de données est ouverte et le transfert démarre.

L'état du fichier 150 est normal et prêt à ouvrir la connexion de données.

2xx - Réponse d'achèvement positive

Une opération a été terminée avec succès. Les clients peuvent exécuter de nouvelles commandes. 200 commande OK.

202 Commande non exécutée, trop de commandes sur le site.

État du système 211 ou réponse de l'aide du système.

212 Statut du répertoire.

213 état du fichier.

Message d'aide 214.

Type de système 215NAME, où NAME est le nom officiel du système répertorié dans le document AssignedNumbers.

220 Le service est prêt à exécuter la demande du nouvel utilisateur.

Le service 221 a fermé la connexion de contrôle. Le cas échéant, déconnectez-vous.

225 Connexion data ouverte, aucun transfert en cours.

226 Fermez la connexion de données. L'opération de fichier demandée a réussi (par exemple, transfert du fichier ou suppression du fichier).

227 entre en mode passif (h1, h2, h3, h4, p1, p2).

230 utilisateurs se sont connectés, continuez.

250 L'opération de fichier demandée est correcte et terminée.

257 "PATHNAME" créés.

3xx - Réponse intermédiaire positive

La commande a réussi, mais le serveur a besoin de plus d'informations de la part du client pour terminer le traitement de la demande. 331 Le nom d'utilisateur est correct et un mot de passe est requis.

332 Connexion au compte requise.

350 L'opération de fichier demandée est en attente d'informations complémentaires.

4xx - Réponse d'achèvement négative transitoire

La commande a échoué, mais l'erreur est temporaire. Si le client réessaye la commande, elle peut réussir. 421 Service indisponible, fermeture de la connexion de contrôle. Cette réponse sera envoyée à n'importe quelle commande si le service détermine qu'il doit s'arrêter.

425 Impossible d'ouvrir la connexion de données.

426Connectionclosed;transferaborted.

450 L'opération de fichier demandée n'a pas été effectuée. Le fichier n'est pas disponible (par exemple, le fichier est occupé).

451 L'opération demandée s'est terminée anormalement : Une erreur locale est en cours de traitement.

452 L'opération demandée n'a pas été effectuée. Il n'y a pas assez d'espace de stockage système.

5xx - Réponse d'achèvement négative permanente

La commande a échoué et l'erreur est permanente. Si le client réessaye la commande, la même erreur réapparaîtra. 500Erreur de syntaxe, commande non reconnue. Cela peut inclure des erreurs telles que la ligne de commande trop longue.

501 Il y a une erreur de syntaxe dans le paramètre.

502 Commande non exécutée.

503 Mauvaise séquence de commandes.

504 La commande avec ce paramètre n'a pas été exécutée.

530 Non connecté.

532 Un compte est requis pour stocker des fichiers.

550 L'opération demandée n'a pas été effectuée. Le fichier n'est pas disponible (par exemple, fichier introuvable, aucun droit d'accès).

551 L'opération demandée s'est terminée anormalement : Type de page inconnu.

552 L'opération de fichier demandée s'est terminée anormalement : allocation de stockage dépassée (pour le répertoire ou l'ensemble de données actuel).

553 L'opération demandée n'a pas été effectuée. Nom de fichier non autorisé.

Codes d'état FTP courants et leurs causes

150 - FTP utilise deux ports : 21 pour l'envoi de commandes et 20 pour l'envoi de données. Le code d'état 150 signifie que le serveur est prêt à ouvrir une nouvelle connexion sur le port 20 pour envoyer des données.

226 - La commande ouvre une connexion de données sur le port 20 pour effectuer des opérations telles que le transfert de fichiers. L'opération s'est terminée avec succès et la connexion de données a été fermée.

230 - Ce code d'état s'affiche une fois que le client envoie le mot de passe correct. Cela signifie que l'utilisateur s'est connecté avec succès.

331 - Ce code d'état est affiché après que le client envoie le nom d'utilisateur. Ce code d'état sera affiché, que le nom d'utilisateur fourni soit ou non un compte valide sur le système.

426 - La commande a ouvert une connexion de données pour effectuer une opération, mais l'opération a été annulée et la connexion de données a été fermée.

530 - Ce code d'état signifie que l'utilisateur ne peut pas se connecter car la combinaison nom d'utilisateur et mot de passe n'est pas valide. Si vous êtes connecté avec un compte utilisateur, vous avez peut-être saisi un mauvais nom d'utilisateur ou un mauvais mot de passe, ou vous avez peut-être choisi d'autoriser uniquement l'accès anonyme. Si vous vous connectez à l'aide d'un compte anonyme, IIS peut être configuré pour refuser l'accès anonyme.

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中文网其它相关文章!

推荐阅读:

asp.net+jquery.form做出图片异步上传功能

jquery删除table选中行

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn