web-dev-qa-db-fra.com

Différences entre Response.End () et Response.Flush ()

J'ai un code comme celui-ci:

context.HttpContext.Response.Clear();
            context.HttpContext.Response.Write(htmlString);              
            context.HttpContext.Response.End(); 

Mais lorsque les pages sont chargées, j'ai une balise html non fermée sur elles. Lorsque je remplace Response.End () par Response.Flush (), cela fonctionne très bien. Quelle est la différence entre Response.End () et Response.Flush ()?

23
Cipiripi

Response.Flush

Force l'envoi de toutes les sorties actuellement en mémoire tampon au client. La méthode Flush peut être appelée plusieurs fois pendant le traitement de la demande.

Response.End

Envoie toutes les sorties actuellement mises en mémoire tampon au client, arrête l'exécution de la page et déclenche l'événement EndRequest.

Vous devez essayer d'utiliser ce code si vous n'effectuez aucun traitement sur la page après Response.Write et souhaitez arrêter le traitement de la page.

    context.HttpContext.Response.Clear();
    context.HttpContext.Response.Write(htmlString);              
    context.HttpContext.Response.Flush(); // send all buffered output to client 
    context.HttpContext.Response.End(); // response.end would work fine now.
29
DotNetUser