ajax - 如何减少 MVC 应用程序的等待时间 (TTFB)

标签 ajax html performance asynchronous

我有一个包含 7 个 div 的 html 页面,我使用 ajax 调用加载每个 div,以便并行加载这些卡片。当我从 Controller 端检查时,每个 div StoredProcedure 只需要 100-200 毫秒,而渲染每个 div 则需要接近 2 秒。当我从 Chrome 开发工具中检查时,每个请求都占用了太多等待时间 (TTFB),而且看起来每个 div 都在同步加载,即使我使用以下代码也是如此:

$.when($.ajax({
    url: div1Url,
    success: function (data) {
        $("#div1").html(data);
    }
}),
       $.ajax({
    url: div2Url,
    success: function (data) {
        $("#div2").html(data);
    }
})
       //Like this I am loading all divs...
       
).then(function () {
console.log('loaded');
});
<div id="div1"> Div1</div>
<div id="div2"> Div2</div>
<div id="div3"> Div3</div>
<div id="div4"> Div4</div>
<div id="div5"> Div5</div>
<div id="div6"> Div6</div>
<div id="div7"> Div7</div>

请在下面找到我呈现的 HTML 页面和每个组件的时间线。有人可以建议我如何减少等待时间以实现性能。

Html Page

enter image description here

PS:我实现了gzip、动态压缩、Expires Headers等,用YSlow工具测试时我的网站Grade是“A”

最佳答案

即使您同时发送 AJAX 请求,如果您使用 session 数据,ASP.NET MVC 也会将它们作为队列处理。

尝试将 [SessionState(SessionStateBehavior.Disabled)] 属性添加到您的 Controller 。

引用这里:ASP.NET MVC 5 concurrent requests are queued even with disabled Session

关于ajax - 如何减少 MVC 应用程序的等待时间 (TTFB),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36326942/

相关文章:

javascript - 通过 Ajax 验证 django html 模板中至少选中一个复选框

jQuery load() 代码在 Google Chrome 中不起作用

android - 降低Android中的音频播放速度

performance - 为什么删除未使用的 `if` 子句会将执行时间从 12 毫秒减少到 4 毫秒?

javascript - 为什么body onload = javascript函数不断执行?

javascript - 'Sys' 未定义 - Ajax - master 和 contentpages ASP.NET 4.0

html - IE 9 的 Magic Zoom z-index 问题

HTML 生成的带有页眉、页脚和水印的 Microsoft Word 文档

javascript - 当窗口变大时,为什么我的响应式菜单没有重新显示为列表?

performance - 为什么在主表上查询很慢?