Domanda

Abbiamo un rapporto dolorosamente lento. Ho aggiunto un Response.flush e sembra molto meglio. Quali sono alcuni degli avvertimenti dell'utilizzo di questo metodo.

È stato utile?

Soluzione

Se Response.Buffer non è impostato su true, verrà visualizzato un errore di runtime. Inoltre, se il metodo Flush viene chiamato in una pagina ASP, il server non rispetta le richieste Keep-Alive per quella pagina.

Dovrai anche cercare se stai usando un design basato su una tabella in quanto non verrà visualizzato in alcuni browser fino a quando non verrà inviata l'intera tabella. Ciò significa che se hai 10.000 righe, l'utente avrebbe comunque bisogno attendere il trasferimento di tutte le 10.000 righe prima che vengano effettivamente visualizzate.

Altri suggerimenti

Espandendo la risposta di Wayne : semmai devi impostare Response.Headers, non puoi farlo dopo che una parte della risposta è stata eliminata.

Non ci sono problemi con lo scaricamento della risposta in questo modo. In genere si consiglia di migliorare le prestazioni per bufferizzare l'intera pagina e scaricarla sul client, ma per gli script di lunga durata è spesso meglio mostrare alcuni dati al client in modo che l'utente veda qualcosa che sta accadendo.

Ricorda che il flushing manuale ha un effetto corretto solo quando si esegue il buffering della pagina dall'inizio, altrimenti IIS scaricherà automaticamente (esegui lo streaming della pagina sul client).

Dovresti evitare di eseguire lo svuotamento frequente poiché IIS dovrà quindi utilizzare le risorse per svuotare spesso la pagina invece di elaborare lo script. Ad esempio: svuota ogni 50 righe invece che mai.

Response.flush potrebbe essere utile per inviare al browser l'intestazione del rapporto .. quindi visualizzare un "messaggio di caricamento", quindi il processo del rapporto e svuotare il rapporto, quindi eseguire un piccolo javascript per nascondere il " caricamento " messaggio.

In questo modo farai sapere ai tuoi utenti che qualcosa si sta aprendo in modo che non premano STOP INDIETRO o semplicemente chiudano la finestra poiché potrebbero altrimenti essere tentati.

Inoltre, ho giocato molto con quale browser visualizza quale tabella e IE sembra essere l'unico a non visualizzare una tabella a meno che non venga ricevuto il tag. Ciò significa che tutte le righe potrebbero apparire gradualmente in altri browser ma non in IE.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top