如何异步加载div中的多个局部视图

时间:2018-02-24 19:03:04

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

队 我有一个视图,其中包含四个局部视图,哪些数据是独立的,因此需要异步加载它们。 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);
    }
});

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

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

你能提示/指导吗?

1 个答案:

答案 0 :(得分:1)

我想在你的情况下,服务器按会话锁定请求(因此会话变得线程安全,可以写入)。如果禁用它或在必需的操作中设置只读,则可以达到预期的效果。

请查看link了解详情