J'ai un grand document Excel généré lorsque l'utilisateur clique sur le lien de téléchargement. Lorsque vous cliquez sur le lien de téléchargement, le navigateur ouvre la boîte de dialogue standard d'annulation d'enregistrement. Le problème est que le temps d'attente peut être très long, par ex. 15 secondes ou plus avant que la boîte de dialogue n'apparaisse. Je veux montrer un gif occupé pendant que la demande est en cours. Comment puis-je accomplir cela? Je suis assez sûr que je peux montrer un gif facilement en utilisant jQuery, mais je ne suis pas sûr de savoir comment arrêter/cacher l'indicateur occupé lorsque le nouveau document (Excel Doc) a fini de charger. Y a-t-il un événement javascript auquel je pourrais attacher un gestionnaire?Afficher un gif occupé après que l'utilisateur ait cliqué sur un lien
Répondre
Une autre option est la méthode de fichier temporaire: Is there a way to detect the start of a download in JavaScript?
En gros:
- utilisateur clique sur le lien de téléchargement/bouton
- Une requête AJAX est envoyée pour créer le doc excel. Montre l'indicateur 'occupé'.
- Le document Excel est créé et enregistré dans un fichier temporaire sur le serveur. Une réponse est envoyée contenant un identifiant unique identifiant le fichier.
- La réponse AJAX est gérée côté client. Masquer l'indicateur 'occupé'.
window.location
est remplacé par quelque chose comme'download.aspx?id=###'
qui invite l'utilisateur à enregistrer le fichier.
Le problème ici est que cliquer sur le lien déclenche une autre requête qui n'a rien à voir avec la première. Vous pouvez avoir le code qui gère la demande de téléchargement de mettre à jour une sorte de données de session, qu'un peu d'Ajax sur la page de liaison interroge pour déterminer quand le gestionnaire de demande est en train d'offrir les données à télécharger. Alternativement, vous pouvez simplement faire expirer après une période de temps raisonnable, disons 30 secondes, et peut-être offrir une explication. Cela pourrait alors passer à travers deux états:
"Click here to download the super-duper PDF of awesomeness!"
"Please wait, generating a whole dollop of fonty goodness..."
"It may take some time to bundle all that uber-data into a download...if nothing's happening, maybe you want to try again?"
Cela semble être l'approche Google Mail prend en matière de délais d'attente ou la détection des problèmes similaires.
- 1. Afficher le chargement GIF après avoir cliqué sur le bouton Envoyer?
- 2. comment enregistrer un utilisateur cliqué sur un lien annonces
- 3. JQuery soumettre forme après avoir cliqué sur le lien
- 4. jQuery - en cliquant sur le lien cliqué
- 5. WebPart dans Sharepoint se fige après avoir cliqué sur un bouton de lien
- 6. Afficher l'URL après le lien?
- 7. Comment afficher les GIF animés sur un Windows Form (C#)
- 8. Avoir une action retardée après avoir cliqué sur un formulaire
- 9. précharger un gif animé
- 10. Comment afficher un bouton sur un UIAlertView après l'avoir affichée
- 11. Après avoir cliqué sur le nième élément, comment manipuler un autre élément?
- 12. Définir le focus sur un autre contrôle après avoir cliqué sur TreeView
- 13. Comment rendre un canal nommé non occupé après la déconnexion du client?
- 14. Vous savez quand un lien hypertexte dans un champ de texte est cliqué?
- 15. Bouton désactiver la fonction après avoir cliqué sur elle
- 16. afficher une animation gif dans WPF
- 17. Comment ajouter un gif animé à un bouton?
- 18. gif Imprimer en utilisant java sur un 4x6" papier
- 19. Développer un lien pour afficher l'image sans utiliser javascript
- 20. Afficher un lien avec div php mysql jQuery
- 21. Désactiver le bouton de lien après avoir cliqué dessus dans C#
- 22. Exécuter une requête MySQL après que wget ait fini de télécharger le fichier
- 23. vCalendar - Afficher en tant que (disponible/occupé/provisoire/absent du bureau)
- 24. Écrire un fichier GIF en Java
- 25. Afficher un div masqué sur le rechargement après le bouton submit_form cliquez sur
- 26. Ouverture de la page Web comme si un lien a été cliqué de la page Web
- 27. Comment puis-je cliqué sur un lien dans différents cadres sans déclencher le chargement dans les autres cadres
- 28. Comment savoir quel lien d'ancrage est cliqué avec javascript?
- 29. ciblant une nouvelle page pour un lien sur un pdf
- 30. Comment afficher le dialogue "occupé" (roue en rotation) sur le téléphone intelligent