Dojo “chargement en cours”message
Je suis nouveau Dojo, j'ai donc besoin d'un peu d'aide.
Certains de mes liens prend un certain temps (lorsque l'utilisateur clique, il faut plusieurs secondes avant que la page commence à charger), et je voudrais ajouter un "chargement en cours"message.
Je peux faire de la "old fashion", mais je veux apprendre la nouvelle, plus simple, plus intelligente Dojo-chemin.
Exactement comment il fonctionne, c'est pas important pour l'instant, mais j'imagine quelque chose comme ceci:
Un rectangle s'affiche au milieu de l'explorateur windows. (Pas au milieu du document.) Il a un gif animé, et un message du genre "Veuillez patienter...".
Tous les autres éléments sont désactivés, peut-être "disparu" un peu. Peut-être un grand blanc 50% rectangle transparent, qui se trouve entre le "chargement"-message et dans le reste du document.
Vous devez vous connecter pour publier un commentaire.
Ce que vous décrivez suppose que dojo lui-même a déjà été chargé par le temps que le modal
dijit.Dialog
s'affiche avec le message de chargement.Maintenant, normalement, dojo commence à s'exécuter une fois que votre page est complètement chargée, et que vous auriez normalement mettre votre dojo code à l'intérieur d'une fonction anonyme transmise en tant que paramètre de
dojo.addOnLoad()
.Qui implique que la partie restante de votre page (ce que vous appelez votre "liens") devra être chargé via ajax (en utilisant, par exemple,
dijit.layout.ContentPane
). De cette façon, dojo pouvez exécuter avant que le contenu est téléchargé, et votre message "waiting" peut apparaître plus tôt.Il pourrait ressembler à ceci:
Le seul défaut de ce plan est de dojo lui-même: attendre de votre shrinksafed bibliothèque de peser plus de 90K (peut-être jusqu'à 300 K, en fonction de la quantité de choses que vous mettez là). Sur une connexion lente, qui prend toujours un certain temps à télécharger. Cela dit, nous parlons d'un statique 90K --- le même utilisateur ne télécharger qu'une seule fois par session, et encore moins souvent que si vous prenez le temps d'établir les cache/expire en-têtes lorsque ces fichiers statiques sont servis.
Dojo a un tel composant déjà: Dojox Occupé Bouton. Vous pourriez aussi être intéressé par les articles suivants par Sitepen: Dojo: les Blocs de Construction de sur le Web (montre bloquant le contenu de la page) et La mise en œuvre d'une Application Web de Préchargement de Superposition.
je suis en utilisant dojox.widget de.Veille à cet effet:
http://dojotoolkit.org/reference-guide/dojox/widget/Standby.html
lorsque votre contenu est prêt à l'utilisation...
"target-id-toStandby" est l'id de la div que vous voulez, de "geler"
J'ai mis en place une telle chose de cette façon:
D'abord, sur chaque page, ajouter un gestionnaire d'événements pour toute href classe "lente" ci-jointe:
La fonction de chargement ressemble à ceci:
Le CSS pour le "chargement" de la classe ressemble à ceci:
Où
loading.gif
est un joli GIF animé.pierdeux m'a mis sur la piste avec celui-ci. C'est mon code pour l'instant:
C'est un modal de la boîte de message qui ne peut pas être fermé, de sorte que l'utilisateur ne peut pas utiliser d'autres éléments sur la page. C'est exactement ce que j'ai demandé, donc je vais accepter pierdeux de réponse.