Qual è il modo migliore per tenere una pagina ASP.NET fino al termine un'operazione di lunga durata? [chiuso]

StackOverflow https://stackoverflow.com/questions/901954

Domanda

JavaScript?

Aggiorna Metatag?

Response.Redirect (per sé)

Server.Transfer (per sé)

pannello di aggiornamento Ajax?

È stato utile?

Soluzione

Diamo un'occhiata alle opzioni:

  

JavaScript?

Questo funziona bene, fino a quando l'utente non è stato disabilitato.

  

Aggiorna Metatag?

Un metodo sconsigliato a favore del metodo Javascript. Tuttavia, si potrebbe utilizzare come backup se l'utente ha disattivato JavaScript.

  

Response.Redirect (per sé)

Che non funziona, come il browser non avrebbe mostrato anyhing utili per l'utente durante il reindirizzamento. Inoltre, il browser si fermerà la richiesta dopo un certo numero di reindirizzamenti per proteggere l'utente da reindirizzamenti infiniti.

  

Server.Transfer (per sé)

Non funziona neanche, come il codice sul server sarebbe solo ciclo senza inviare nulla al browser. L'effetto è lo stesso che solo avere un ciclo nel codice.

  

pannello di aggiornamento Ajax?

Funziona bene, fino a quando l'utente non JavaScript disabilitato. E 'fondamentalmente la stessa della prima opzione, solo il Javascript fa la richiesta stessa invece di lasciare il browser fare la richiesta.

Altri suggerimenti

Se si può segnalare qualsiasi tipo di progresso per l'utente, tendo a correre con un asxh e una variazione di un sempre inquadrare . Aggiungere un po 'di jQuery UI Dialog e jQuery UI barra di avanzamento e hai un modo lucido di tenere l'attenzione degli utenti, mentre si fa il lavoro pesante sul server.

Ho dato qualche esempio di codice a 874.204 che dimostra la tecnica.

Se non è possibile dare i progressi per l'utente, tendo a usare ancora di dialogo dell'interfaccia utente e pop un "Attendere prego, elaborazione ..." messaggio con un web due dot oh compatibile gif spinny.

Leggi questo articolo su Asynchronous Pagine . Ecco un esempio da CodeProject che include pagine asincroni e META-REFRESH.

Si può trovare un esempio di implementazione di questo tipo di funzionalità nel Beer House Starter Kit- http://www.asp.net/Downloads/starter-kits/the-beer-house/ .

Le pagine SendingNewsLetter.aspx e SendNewsLetter.aspx sarà utile a voi. Questo potrebbe essere eccessivo per il vostro bisogno però- si vede anche il progresso dell'operazione di lunga esecuzione.

Cosa succede ad usare il AJAX WebModalAnchor per far comparire una finestra con un pulsante Annulla?

Spero che questo aiuti,

Bill

Mi consiglia di utilizzare Ajax e la visualizzazione di un UpdateProgress modo che l'utente sa che è ancora sfornare via.

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