2010-02-24 9 views
6

Frage zu sterben hart asp.net Experten. Ich habe viel Zeit damit verbracht, eine Antwort zu finden oder es selbst zu tun, aber bisher kein Glück.Gleichzeitig asynchrone Rückrufe

ASP.NET-Webanwendung. Ich plane, die Seitenladezeit zu verbessern, damit die Benutzererfahrung besser ist. Ich möchte Ladeabschnitte der Seite mithilfe von UpdatePanels verzögern. Ich kann ein UpdatePanel selbst aktualisieren, nachdem die Seite mit Timer mit minimalem Intervall geladen wurde. Das funktioniert gut, aber die Schritte beginnen, wenn Sie versuchen, es mit mehreren UpdatePanels zu machen. Grundsätzlich werden alle Panels aktualisiert, aber nicht alle gleichzeitig.

Nun, ich habe gelesen, dass dies aufgrund einer Tatsache ist, dass jedes asynchrone Postback-Ergebnis volle Seite Viewstate Karies und Asystaten Postbacks serialisiert werden, um Inkonsistenzen von Viewstate zu verhindern. Tatsächlich sagen sie, dass nur der letzte Rückruf erfolgreich wäre, also habe ich Glück, dass sie serialisiert wurden, denke ich.

Und jetzt die große Frage: Hat jemand einen Weg gefunden? In ASP.NET wenn möglich. Dies wäre eine sehr wertvolle Antwort wahrscheinlich nicht nur für mich.

Danke, danke, danke (für Arbeits Antwort :-)

Antwort

5

Update sind synchron durch Design.

Wenn Sie mehrere Anfragen gleichzeitig ausführen möchten, müssen Sie Seitenmethoden, AJAX-Dienste oder RAY-AJAX verwenden. In jedem Fall müssen Sie ViewState aufgeben.

Wenn Sie ASP.Net-Steuerelemente gleichzeitig für mehrere AJAX-Anforderungen rendern möchten, können Sie kleine unabhängige ASPX-Dateien erstellen, die die Steuerelemente enthalten, AJAX-Anforderungen an sie senden und den gerenderten HTML-Code in das DOM einfügen. In jQuery würden Sie das folgendermaßen tun: $('selector').load('something.aspx'). Beachten Sie, dass weder Postbacks noch Viewstate funktionieren würden.

+0

Das ist wahrscheinlich die beste Antwort, die ich bekommen kann. Es ist ein bisschen traurig, das zu lernen, und es tut mir leid, dass es nicht klar in der Hilfe/Dokumentation steht. Darüber hinaus würde der AsyncPostBackTrigger-Triggertyp vorschlagen, dass UpdatePanel asynchrone Vorgänge unterstützt. Ich möchte die Seite nicht in mehrere Unterseiten aufteilen - Lösung lohnt sich nicht. Aber wie kann ich dazu Seitenmethoden verwenden? –

+0

Wonach fragen Sie? – SLaks

+0

Seitenmethoden sind nicht das, wonach ich hier bin. Wahrscheinlich wäre JavaScript meine Antwort. Vielen Dank. –