使用 AJAX 或多线程加速页面加载

2024-06-19

我的页面有 5 个部分。 每个部分大约需要 1 秒来渲染。

Page_Load()
{
   RenderSection1();  //1 sec
   RenderSection2();  //1 sec
   RenderSection3();  //1 sec
   RenderSection4();  //1 sec                  
   RenderSection5();  //1 sec
}

我想加快此页面的加载速度。但同时请确保它不会降低 Web 应用程序其他部分的性能,也不会导致 IIS 崩溃。

有以下几种方法:

  1. 使用 AJAX 请求。需要对控制器或 Web 服务进行 MVC 风格的请求。
    在每个部分周围使用 UpdatePanel 将不起作用 - 因为如果我尝试使用此处的方法同时向多个 UpdatePanel 提交刷新:http://encosia.com/2007/07/13/easily-refresh-an-updatepanel-using-javascript/ http://encosia.com/2007/07/13/easily-refresh-an-updatepanel-using-javascript/, 最后一个请求总是会获胜:http://www.codeproject.com/Tips/57035/Simultanious-Async-Requests-Using-Multiple-Update-.aspx http://www.codeproject.com/Tips/57035/Simultanious-Async-Requests-Using-Multiple-Update-.aspx

  2. 使用回答中描述的 ASP.NET 线程在 ASP.NET Web 应用程序中创建线程的正确方法 https://stackoverflow.com/questions/1824933/right-way-to-create-thread-in-asp-net-web-application。所以我会为每个调用使用一个单独的线程: RenderSection1、RenderSection2 等...

  3. 将占用时间的逻辑(通常是数据库请求)移至另一个 DLL 或外部 Web 服务中的应用程序服务类。就像是

OrderDTO GetDataForViewOrder(int orderID)
{
}

并在该 DLL 中使用多线程。这种方法似乎提供了最好的可扩展性,但也将 UI 细节引入了应用程序服务层。

您认为哪种方法最好,为什么?


ajax.

线程处理并没有多大帮助,因为整个页面需要等待所有线程完成。而且 ASP.NET 本身不太可能需要时间。更有可能的是您的数据库或其他东西。线程还会给您的应用程序增加更多的复杂性,但不会从中获得太多好处。仅在 Web 应用程序中使用线程来执行维护任务等,其他一切都可以使用 ASP.Net 来解决。

使用 ajax,您可以快速返回主页,并且一旦从 ajax 请求返回结果,所有部分都会被渲染。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 AJAX 或多线程加速页面加载 的相关文章

随机推荐