2009-12-13 7 views
0

Je voudrais savoir si cela serait possible en javascript: j'ai une application, principalement développée en javascript. Il y a des appels ajax qui récupèrent le contenu html dispersé tout autour du code.javascript load listener

Je voudrais créer un objet qui écoute chaque fois qu'une fonction de chargement est appelée, et lancer une fonction dans ce cas (comme l'affichage d'un préchargeur).

Je sais qu'il existe de nombreux plugins de chargement, mais ils ont tous besoin d'ajouter leur propre code à chaque endroit où une charge est lancée. Je voudrais garder cela séparé, car c'est plus facile à maintenir.

Est-ce possible?

Répondre

1
$('document').ajaxStart(function() { /* show loader */ }); 
$('document').ajaxStop(function() { /* hide loader */ }); 

est-ce pas vraiment aussi simple que cela, que plusieurs appels AJAX pourrait se passer en même temps, de sorte que vous ne voulez pas toujours ajaxStop pour cacher le chargeur. Vous devez créer un petit compteur qui garde la trace des appels en cours, mais ce sont les événements que vous voulez connecter, de toute façon

0

À première vue, je ne vois pas pourquoi pas. Si vous n'utilisez que XMLHttpRequest, vous pouvez créer votre propre gestionnaire d'ouverture de XMLHttpRequest (et/ou envoyer, en fonction de ce que vous avez l'intention d'utiliser), faire ce que vous voulez dans l'écran de chargement, puis appeler la méthode originale.

Votre méthode doit également envelopper le gestionnaire de méthode onload fourni par l'appelant, afin qu'il puisse terminer l'écran de chargement lorsque le document est terminé.