MVC C# 多个异步 ajax 调用

MVC C# multiple async ajax calls

我打电话给 restfull api,这给了我一些 "summary" 基于搜索查询的产品信息。结果显示在页面上。呈现后,我希望页面 (ajax?) 在用户不注意的情况下加载附加信息,例如产品的所有图像。图像将被异步加载到轮播中。问题是我将如何实现这一目标?

我应该从我的视图中调用控制器操作吗?我试过了,但我不能将异步函数调用为 child。所以我想我调用了一个 javascript 函数,让它执行一个 ajax 调用来获取图像。

我的问题是这是最好的方法吗?这会减慢观看速度吗?

根据我的经验,最好在视图模型中包含所有信息(名称、描述、价格、图片等)。例如,您通过控制器(或任何其他层)从数据库中检索数据,然后通过控制器 return 具有特定视图模型和数据的视图。但是,在您的情况下,您可能有一个大图像并且在一个查询中加载它们可能效率不高。为了解决这个问题,您可以在您的控制器中创建单独的操作并加载图像 您通过 AJAX 呈现视图之后。如果调用是异步的,浏览器将不会被冻结,但是通知用户正在加载某些东西是很好的——在这种情况下——图像。

我会考虑在视图底部执行一些 JavaScript 代码(以确保已呈现文档正文)以对负责返回图像数据的控制器进行 AJAX 调用,例如

视图底部。

@section Scripts {
    <script type="text/javascript">
       // Load the image data using AJAX.
    </script>
}

以上假定视图使用的布局页面有一个 RenderSection("Scripts", false) 调用。如果没有,则只需删除 @section {} 位。

AJAX 调用可以是 async : true(我假设 jQuery 是您正在使用的)以允许用户继续与网页交互,并且没有经历 delay/freeze.