Question

Nous avons un rapport extrêmement lent. J'ai ajouté un Response.flush et il semble beaucoup mieux. Quels sont les inconvénients de l’utilisation de cette méthode?

Était-ce utile?

La solution

Si Response.Buffer n'est pas défini sur true, vous obtiendrez une erreur d'exécution. De plus, si la méthode Flush est appelée sur une page ASP, le serveur n'accepte pas les demandes Keep-Alive pour cette page.

Vous voudrez également vérifier si vous utilisez une conception basée sur une table car elle ne sera pas rendue dans certains navigateurs tant que la table entière n'aura pas été envoyée. En d'autres termes, si vous avez 10 000 lignes, l'utilisateur aura toujours besoin d'attendre que les 10 000 lignes soient transférées avant de les voir réellement.

Autres conseils

Développement de la réponse de Wayne : si quelque chose vous do doit définir Response.Headers, vous ne pouvez pas le faire après avoir vidé une partie de la réponse.

Il n'y a aucun problème à purger la réponse de cette manière. Il est généralement recommandé, pour de meilleures performances, de mettre en tampon la page entière et de la vider vers le client, mais pour les scripts longs, il est souvent préférable d'afficher certaines données sur le client afin que l'utilisateur voie quelque chose se passe.

N'oubliez pas que le nettoyage manuel n'a d'effet correct que lors de la mise en mémoire tampon de la page depuis le début, sinon IIS se videra automatiquement (diffusion de la page sur le client).

Évitez de trop souvent vider le vidage, car IIS devra alors utiliser des ressources pour vider la page souvent au lieu de traiter le script. C'est-à-dire: vider toutes les 50 lignes au lieu de toutes les lignes.

Response.flush peut être utile pour envoyer au navigateur l’en-tête du rapport .. puis afficher un "message de chargement", puis votre processus de rapport et le vider du rapport, puis exécuter un petit morceau de javascript pour masquer le " chargement " message.

De cette manière, vous ferez savoir à vos utilisateurs que quelque chose se passe, ils ne cliqueront donc pas sur STOP BACK ou ne fermeront pas la fenêtre car ils pourraient être tentés.

De plus, j'ai beaucoup joué avec quel navigateur afficher quelle table et IE semble être le seul à ne pas afficher une table à moins que la balise ne soit reçue. Cela signifie que toutes les lignes pourraient apparaître progressivement dans un autre navigateur, mais pas dans IE.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top