Pergunta

Fundo:

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

Iniciar a partir de 27:. 15, RenderAction foi discutido em 28:43 que uma RenderAction não fará parte da Asynchronocity como um método de ação asyncronous chamado

(Vamos dizer que sua casa action index portal chamando 1.GetNews 2.GetWeather 3.GetStock asynchronously.You tem ter um RenderAction exibindo posts recentes dos usuários no mesmo ponto de vista. (GetUserRecentPosts))

Perguntas

E se RenderActions si são assíncronas?

Would GetUserRecentPosts ser chamado apenas após o índice casa completou sua ação embora?

deve RenderActions ser processado de forma assíncrona em uma visão por padrão?

Foi útil?

Solução

Eu não acho que você pode fazer isso com sucesso. O ponto onde você poderia beneficiar de processamento asynch já passou quando seus pontos de vista iniciar renderização. O pipeline MVC que configura o começam métodos / end já foi concluída eo View tem nenhuma maneira de voltar para ele no mesmo pedido. Parece que você pode ser preso com o processamento síncrono ou inventar alguma maneira de recuperar todos os seus dados na frente e de cache-lo em TempData ou algo para renderização.

Outras dicas

quadro Elevador no Scala é provavelmente o único que eu estou ciente de que tem ações parciais paralelas que não irá bloquear a prestação do conteúdo principal, mas vai usar Comet-push para satisfazer de vista parcial para aqueles blocos que podem assumir um enquanto para obter dados para.

usá-lo, só embrulhar um bloco na sua opinião dentro de um nó paralela

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

Levante também irá cuidar de fome de conexão de sua página para gerenciar http solicitações de forma adequada para que os empurrões do navegador não estão "à espera 'round".

Infelizmente, ASP.NET MVC tem fraco suporte Comet. Não há muito fora de controladores assíncronos, que é um método de melhoria, mas não tão elegante como, por exemplo, quadro de Akka suspender () para long-polling.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top