2010-07-30 5 views
1

J'ai une page ASP.NET (C#) qui a un long temps de chargement (comme 2 minutes). L'utilisateur est présenté avec une petite animation et un message "veuillez patienter". Si l'utilisateur charge accidentellement cette page, il doit attendre le chargement.Comment arrêter le chargement d'une page après l'envoi de la requête?

Ma question est: Y at-il un moyen d'arrêter le chargement de la page?

Merci

+0

Comment le chargement des données est-il en cours? Ajax ou juste à travers la demande de la page principale? Et que voudriez-vous que l'annulation fasse? Juste arrêter le chargement ou faire une redirection ou faire de l'écran quelque chose de différent? – Chris

+0

Je n'utilise pas AJAX. Ce que je voudrais faire est d'émettre une commande d'arrêt de chargement sur le serveur pour qu'il arrête de rendre la page, parce que le rendu de grande page semble ralentir les autres qui utilisent le système. – Olivier

Répondre

4

Si vous voulez arrêter le traitement côté serveur, c'est une opération délicate. Généralement, une fois qu'une requête est faite, cette page est indépendante de celle des autres. Ce que vous devrez probablement faire est de réorganiser cette page pour vérifier à intervalles réguliers si une commande d'arrêt a été émise et annuler tout ce qu'elle fait à ce moment-là. Le drapeau d'arrêt pourrait être mis en session et devrait être effacé après l'arrêt.

Vous pouvez également avoir besoin de considérer comment identifier correctement le droit d'arrêter (dans le cas où il y en a plusieurs). Cela pourrait être fait en retournant un identifiant unique qui peut être utilisé dans le cadre d'un appel à la page "Abandonner". Mon approche bien que plutôt que ce compliqué rigmarole est de faire des efforts pour empêcher l'utilisateur de faire cet accident. Il est possible que vous fassiez apparaître un lien indiquant que "la page suivante prendra plusieurs minutes, souhaitez-vous continuer", et ensuite, espérons-le, vous allez annuler la demande de page avant qu'elle ne soit faite.

Je dois noter que je n'ai jamais essayé de faire ce genre de chose auparavant, donc il peut y avoir des façons plus faciles de le faire mais c'est comme ça que je penserais probablement à ce problème.

+0

Votre idée semble bonne. je vais essayer – Olivier

0

Essayez window.stop() en JavaScript.

+0

J'ai essayé cela et cela n'empêche pas le rendu de la page – Olivier

+0

Etes-vous dans IE? Essayez ceci: 'document.execCommand ('Stop')'. Pas joli, mais si cela fonctionne, vous devrez probablement supporter les deux commandes sur différents navigateurs. –

+2

Si vous regardez la réponse à mon commentaire sur la question, ce n'est pas tout à fait ce qui est nécessaire de toute façon. Galael est un moyen d'arrêter le traitement du serveur et de trouver une solution JS pure que je ne pense jamais. – Chris

Questions connexes