2010-02-24 14 views
6

Domanda per morire esperti asp.net. Ho passato molto tempo a cercare una risposta o a farlo da solo, ma finora non ho avuto fortuna.Concorsi callback asincroni

Applicazione web ASP.NET. Ho intenzione di migliorare il tempo di caricamento della pagina in modo che l'esperienza utente sia migliore. Voglio ritardare il carico delle sezioni di pagina usando UpdatePanel. Posso aggiornare UpdatePanel subito dopo il caricamento della pagina utilizzando il timer con un intervallo minimo. Funziona bene, ma i passaggi iniziano quando si tenta di farlo con più UpdatePanel. In pratica, ciò che accade è che tutti i pannelli vengono aggiornati, ma in sequenza piuttosto che tutti allo stesso tempo.

Ora, ho letto che questo è dovuto al fatto che ogni postback asincrono causa il pieno dello stato di visualizzazione della pagina e per evitare che le incoerenze dei backstatstart siano serializzate. In realtà dicono che solo l'ultima callback avrebbe avuto successo quindi sono fortunato ad averli serializzati, immagino.

E ora la grande domanda: qualcuno ha trovato un modo per aggirarlo? In ASP.NET se possibile. Questa sarebbe una risposta MOLTO apprezzata probabilmente non solo per me.

Grazie grazie grazie (richiesta di risposta lavorare :-)

risposta

5

UpdatePanels sono sincroni di progettazione.

Se si desidera eseguire più richieste contemporaneamente, è necessario utilizzare i metodi di pagina, i servizi AJAX o AJAX non elaborati. In entrambi i casi significa rinunciare a ViewState.

Se si desidera eseguire il rendering di controlli ASP.Net contemporaneamente per più richieste AJAX, è possibile creare piccoli file ASPX indipendenti che contengono i controlli, inviare richieste AJAX e inserire l'HTML visualizzato nel DOM. In jQuery, dovresti fare questo in questo modo: $('selector').load('something.aspx'). Nota che né i postback né i viewstate funzionerebbero.

+0

Questa è probabilmente la migliore risposta che posso ottenere. È un po 'triste apprenderlo e, peccato, non è chiaramente indicato in help/doc. Ancor più, il tipo di trigger AsyncPostBackTrigger suggerirebbe che UpdatePanel supporta operazioni asincrone. Non voglio dividere la pagina in un mucchio di pagine secondarie - soluzione che non vale la pena. Ma come posso usare i metodi di pagina per questo? –

+0

Cosa stai chiedendo? – SLaks

+0

I metodi di pagina non sono quello che sto cercando qui. Probabilmente JavaScript sarebbe la mia risposta. Grazie. –