4

我有一个(大)问题,所有使用 Webforms 的人都可能遇到。

问题是加载页面的时间。在 Vista(IIS 7)中使用 localhost(女巫应该是最快的模式)我得到这个图

替代文字 http://www.balexandre.com/temp/2009-06-29_1302_soquestion.png

原始文件链接

如您所见,显示页面需要超过 17 秒!!!只需 2 秒即可自行加载页面...

我正在使用 ASP.NET AJAX 框架来处理 Web 部件。

我怎样才能减少这 17 秒?

任何关于去哪里的想法都非常感谢:)


补充:测试Jan Zich的正确答案

我测试了改变

<asp:ScriptManager ID="sm" runat="server" />

进入

<ajax:ToolkitScriptManager ID="sm" runat="server" CombineScripts="true" />

并且使用 FireBug 的结果令人印象深刻(一半时间,而不是使用缓存!),如下图所示

替代文字 http://www.balexandre.com/temp/2009-06-29_1543_soquestion.png

原始文件链接

并且缓存了 CSS 和 jQuery文件,减少了一半!

替代文字 http://www.balexandre.com/temp/2009-06-29_1550_soquestion.png

原始文件链接

4

3 回答 3

4

这不算是一个有效的答案,因为我不知道如何实际解决这个问题,但问题是大多数浏览器(可能除了 Safari 和 Chrome 之外)按顺序加载 JavaScript,因为有必要等待前一个脚本完成执行(因为它可能会更改文档)。这通常通过将所有 JavaScript 文件合并为一个来解决。

编辑:相关问题:如何组合 WebResource.axd 和 ScriptResource.axd 文件以减少对我的 ASP.NET 服务器的请求?. 此外,我无法从屏幕截图中看到您实际包含的脚本,但很可能是您的自定义脚本。您的应用程序中有没有办法以某种方式组合它们?

于 2009-06-29T11:14:03.990 回答
1

请记住,启用调试模式时(在 web.config: <compilation debug="true"> 中),浏览器不会缓存 javascript 文件、图像和 CSS 文件等资源。

因此,在生产环境中(禁用调试),这些数字可能看起来不同,因为浏览器将缓存大部分资源并且不会为每个页面/请求再次请求它们。

于 2009-06-29T11:20:55.303 回答
0

您是否使用加载大量数据的 UpdatePanel?如果是这样,页面在获取所有数据之前不会呈现。

但是可以扩展 UpdatePanel 以在加载数据之前显示 -本文描述了如何做到这一点(唉,用荷兰语,但我相信代码中的注释是英文的)

于 2009-06-29T11:31:09.727 回答