JS setTimeout() alternative
Comme je l'ai expliquer ici , je ne peux pas utiliser la fenêtre.setTimeout() plus et de n'importe quelle fenêtre classique des fonctions comme la fonction clearInterval etc ...); mais j'ai besoin d'appeler un JS bloc de code asynchrone.
C'est pourquoi j'ai utilisé de la demande XHR.
Quelle est la meilleure façon de mettre en œuvre une alternative intelligente à la fenêtre.setTimeout() avec XHR ?
//Not working :(
setTimeout(function(){
document.getElementById("messageTimer").innerHTML = "Happy New Year ! (old version)";
}, 10);
//with or without jQuery - but XHR
jQuery.ajax({
url: "/local/url/easy",
success: function(html, textStatus, jqXHR) {
//a loop ?
//timeout done ?
document.getElementById("messageTimer").innerHTML = "Happy New Year ! (working version)"
}});
Mon violon test : https://jsfiddle.net/mlefree/xzh3w2we/
Tks
OriginalL'auteur Mat Cloud | 2016-02-01
Vous devez vous connecter pour publier un commentaire.
Ce que quelque chose comme cela?
Aussi, vous pourriez être intéressé par la Promesse d'objets. Ce qui pourrait vous donner somtehing comme ceci :
---EDIT---
La Promesse de l'objet est une partie de ECMAScript 6, donc il y aura des problèmes de compatibilité descendante.
Heureusement pour vous, jQuery n'est propre mise en œuvre des Promesses!
Introduction à jQuery Promesses
Voir cette page de la documentation. La mise en œuvre sera similaire.
PB : la promesse n'est pas reconnu avec IE 9 🙁
ce n'est pas asynchrone, même avec la Promesse de la boucle while va geler l'INTERFACE utilisateur et pas d'autres js sera exécuté, tandis que la boucle fonctionne
Oups. Dois-je supprimer ma réponse complètement ou le modifier?
OriginalL'auteur phenxd