【问题标题】:How to load multiple partial view in div asynchronously如何异步加载div中的多个部分视图
【发布时间】:2018-02-24 19:03:03
【问题描述】:

团队, 我有一个包含四个部分视图的视图,这些数据是独立的,因此需要异步加载它们。 Div 形成为 -

   <div class="col-md-6 partialContent" data-url="/Dashboard/PartialView1">
   </div>
   <div class="col-md-6 partialContent" data-url="/Dashboard/PartialView2">
   </div>

控制器动作是。 (添加 thread.speep 以检查是否在 div.load 调用后等待或处理另一个方法)

public PartialViewResult PartialView1()
    {
        PartialView1ViewModel dcVM = new PartialView1ViewModel();
        // business logic code is here
        Thread.Sleep(5000);
        return PartialView("~/Views/Charts/_PartialView1.cshtml", dcVM);
    }
    public PartialViewResult PartialView2()
    {
        PartialView1ViewModel dcVM = new PartialView1ViewModel();
        // business logic code is here
        return PartialView("~/Views/Charts/_PartialView2.cshtml", dcVM);
    }

最后,将数据加载到 div 中 -

    $(".partialContent").each(function (index, item) {

    var url = $(item).data("url");
    if (url && url.length > 0) {
        $(item).load(url);
    }
});

所以在这种情况下,我们期望这两个方法都应该立即被调用,但它会等到第一个方法处理完成。

我们如何在不等待其他操作完成的情况下异步加载所有这些部分视图?

你能提示/指导吗?

【问题讨论】:

  • 所以你的意思是先渲染PartialView1然后渲染partialView 2?
  • 是的,这就是现在发生的事情。我们可以并行吗?

标签: c# jquery asp.net-mvc asynchronous


【解决方案1】:

我猜在您的情况下,服务器按会话锁定请求(因此会话成为线程安全的写入)。如果您禁用它或将所需操作设为只读,则可以达到预期的效果。

详情请查看link

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-07
    • 2013-09-17
    • 1970-01-01
    相关资源
    最近更新 更多