Frage

Hintergrund:

http://www.hanselman.com/blog/HanselminutesPodcast188ASPNETMVC2BetaWithPhilHaack.aspx

Starten

aus. 27: 15, hat bei Render 28:43 diskutiert worden, dass ein Render nicht Teil Asynchronocity als asynchrone Aktion Methode aufgerufen wird

(Sagen wir, Ihr Haus Portal Index Aktion Aufruf 1.GetNews 2.GetWeather 3.GetStock asynchronously.You haben eine Render auf der gleichen Ansicht neuesten Beiträge Benutzer anzuzeigen. (GetUserRecentPosts))

Fragen

Was passiert, wenn RenderActions sich asynchron sind?

Würde GetUserRecentPosts genannt wird erst nach Hause Index seine Aktion obwohl abgeschlossen?

Sollte RenderActions asynchron standardmäßig auf einer Ansicht dargestellt werden?

War es hilfreich?

Lösung

Ich glaube nicht, dass Sie dies erfolgreich tun können. Der Punkt, an dem Sie von asynch Verarbeitung profitieren könnten bereits verstrichen ist, wenn Sie Ihre Ansichten Rendering starten. Die MVC-Pipeline, die den Beginn / Ende Methoden einrichtet bereits abgeschlossen und die Aussicht hat keine Möglichkeit, auf dem gleichen Wunsch in sie zurück zu bekommen. Scheint, wie Sie mit synchroner Verarbeitung geklebt werden können oder irgendeine Art und Weise entwickeln all vorne Ihre Daten abrufen und in TempData oder etwas cachen für das Rendern.

Andere Tipps

Lift Rahmen in Scala ist wahrscheinlich das einzige, das ich kenne, dass parallele Teil Aktionen hat, die nicht die Wiedergabe des Hauptinhalt blockiert wird, aber verwenden Comet-Push-Teilansicht Inhalt für diejenigen Blöcke zu liefern, die eine in Anspruch nehmen während auf Daten für bekommen.

, es zu benutzen, wickeln Sie nur einen Block aus Ihrer Sicht in einem parallelen Knoten

<lift:parallel>
     //this is where Html.RenderAction("GottaFetchNetworkDataFromSomewhereView");
    //this is where Html.RenderAction("GottaFetchNetworkDataFromSomewhereView2");
  // would go
</lift:parallel>

Lift kümmert sich auch um Verbindungsart Verhungern Ihrer Seite HTTP-Anfragen in angemessener Weise zu verwalten, so dass Browser Schübe nicht „warten‚rund“.

Leider hat ASP.NET MVC schlechte Comet Unterstützung. Es gibt nicht viel außerhalb von Asynchron-Controller, die eine Verbesserung ist aber nicht so elegant wie, sagen wir, Akka den Rahmen suspendieren () Methode für die Lang Polling.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top