Maison > interface Web > tutoriel HTML > le corps du texte

Comment définir le délai d'attente pour les requêtes Ajax ?

PHPz
Libérer: 2024-01-26 09:23:06
original
1074 Les gens l'ont consulté

Comment définir le délai dattente pour les requêtes Ajax ?

Comment définir le délai d'expiration de la requête Ajax ? Besoin d'exemples de code spécifiques

Avec le développement des applications Internet, Ajax est devenu un élément indispensable du développement Web. Lors de l'envoi d'une requête Ajax, nous devons parfois limiter le délai d'expiration de la requête pour éviter qu'elle ne soit trop longue, ce qui entraînerait une mauvaise expérience utilisateur ou le blocage du navigateur. Cet article présentera en détail comment définir le délai d'expiration des requêtes Ajax et donnera des exemples de code spécifiques.

La définition du délai d'expiration des requêtes Ajax doit principalement être réalisée via l'attribut timeout de l'objet XMLHttpRequest. Cette propriété permet de définir le temps d'attente maximum de la requête (en millisecondes). Passé ce délai, la requête sera annulée. Nous pouvons suivre les étapes ci-dessous pour définir le délai d'expiration des requêtes Ajax :

Étape 1 : Créer un objet XMLHttpRequest
Pour envoyer une requête Ajax, vous devez d'abord créer un objet XMLHttpRequest. Vous pouvez utiliser le code suivant pour créer un objet XMLHttpRequest compatible avec les principaux navigateurs :

var xhr;
if (window.XMLHttpRequest) {
    xhr = new XMLHttpRequest();
} else {
    xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
Copier après la connexion

Étape 2 : Définir les paramètres de la requête et le délai d'expiration
Avant d'envoyer une requête Ajax, nous devons définir les paramètres de la requête et le délai d'expiration. Le code suivant montre comment définir les paramètres et le délai d'expiration de la requête Ajax :

xhr.open("GET", "your_url_here", true);
xhr.timeout = 5000; // 设置请求的过期时间为5秒(5000毫秒)
Copier après la connexion

Dans le code ci-dessus, nous utilisons la méthode open() pour définir le type de requête (GET) et l'adresse (your_url_here), et définissons le troisième Le paramètre à true indique une requête asynchrone. Ensuite, nous utilisons l'attribut timeout pour définir le délai d'expiration de la requête à 5 000 millisecondes (soit 5 secondes).

Étape 3 : Surveiller les changements d'état de la demande
Après l'envoi de la requête Ajax, nous devons surveiller les changements d'état de la demande afin de pouvoir les gérer en conséquence lorsque la demande est terminée ou expire. Voici un exemple de code qui écoute les changements de statut des demandes :

xhr.onreadystatechange = function() {
    if (xhr.readyState === 4) {
        if (xhr.status === 200) {
            // 请求成功,执行相应的操作
        } else {
            // 请求失败,执行相应的操作
        }
    }
};

xhr.ontimeout = function() {
    // 请求超时,执行相应的操作
};
Copier après la connexion

Dans le code ci-dessus, nous utilisons l'attribut onreadystatechange pour écouter les changements de statut des demandes. Lorsque readyState est égal à 4, cela indique que la demande est terminée. Si le statut est égal à 200, cela signifie que la requête est réussie et que l'opération correspondante est effectuée ; sinon, cela signifie que la requête échoue et que l'opération correspondante est effectuée ; Si la requête expire, l'événement ontimeout sera déclenché et nous pourrons gérer le délai d'attente dans la fonction de rappel correspondante.

Étape 4 : Envoyer une demande Ajax
La dernière étape consiste à envoyer une demande Ajax. Le code suivant montre comment envoyer des requêtes Ajax et effectuer les opérations correspondantes :

xhr.send();
Copier après la connexion

Dans le code ci-dessus, nous utilisons la méthode send() pour envoyer des requêtes Ajax.

En résumé, grâce aux étapes ci-dessus, nous pouvons facilement définir le délai d'expiration des requêtes Ajax. Ce qui suit est un exemple de code complet :

var xhr;
if (window.XMLHttpRequest) {
    xhr = new XMLHttpRequest();
} else {
    xhr = new ActiveXObject("Microsoft.XMLHTTP");
}

xhr.onreadystatechange = function() {
    if (xhr.readyState === 4) {
        if (xhr.status === 200) {
            // 请求成功,执行相应的操作
        } else {
            // 请求失败,执行相应的操作
        }
    }
};

xhr.ontimeout = function() {
    // 请求超时,执行相应的操作
};

xhr.open("GET", "your_url_here", true);
xhr.timeout = 5000; // 设置请求的过期时间为5秒(5000毫秒)
xhr.send();
Copier après la connexion

Avec l'exemple de code ci-dessus, vous pouvez définir le délai d'expiration de la requête Ajax en fonction des besoins réels et effectuer les opérations correspondantes lorsque la requête est terminée ou expire. J'espère que cet article pourra vous aider à comprendre et à utiliser le paramètre de délai d'expiration des requêtes Ajax.

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!