Maison  >  Article  >  interface Web  >  Comment résoudre plusieurs requêtes de pages Ajax et les problèmes de blocage du chargement des pages

Comment résoudre plusieurs requêtes de pages Ajax et les problèmes de blocage du chargement des pages

一个新手
一个新手original
2017-10-16 09:31:052601parcourir

J'ai rencontré plusieurs chargements ajax dans le projet, et il y a eu un problème avec le chargement, et il n'a pas pu être chargé la première fois.

La raison principale est la suivante : le fil de rendu (UI) du navigateur et le fil js s'excluent mutuellement. Lors de l'exécution d'opérations fastidieuses avec js, le rendu des pages sera bloqué. Il n'y a aucun problème lorsque nous exécutons un ajax asynchrone, mais lorsqu'il est défini sur une requête synchrone, les autres actions (le code derrière la fonction ajax et le thread de rendu) s'arrêteront. Même si mon instruction d'opération DOM est dans la phrase avant le lancement de la requête, cette demande de synchronisation bloquera "rapidement" le thread de l'interface utilisateur sans lui laisser le temps de s'exécuter. C'est pourquoi le code échoue.

1. Réécrivez la synchronisation en asynchrone et imbriquez plusieurs requêtes ajax ensemble. , après succès, appelez une autre requête ajax, afin que le chargement de la deuxième requête ne soit pas bloqué car la première requête se termine en premier.

2. Il utilise l'objet Deferred de jquery Après la version 1.5 de jQuery, l'objet Deferred a été introduit, ce qui fournit une fonctionnalité très pratique. généralisation Mécanisme asynchrone.

3. Utilisez la fonction timer setTimeout() ou setinterval() pour vérifier régulièrement si ajax revient avec succès.

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
Article précédent:Comment écrire du SQL en jsArticle suivant:Comment écrire du SQL en js