2

大家好,我正在使用 vs2008 c# asp.net。我的项目中有页面,其中包含许多 gridviews 列表视图和文本框、图像上传控件。所有控件均来自带有 vs2008 的标准工具包。我想知道改善项目页面加载时间的可能方法。我听说过视图状态压缩。还有其他建议吗?请帮忙。谢谢

4

4 回答 4

1

您应该做的第一件事是测量当前状态,有很多工具可以帮助您完成这项任务:

你需要测量的东西

  • 第一个字节的时间是多少,或者服务器生成页面所需的时间,它应该低于 0.5 秒。如果此时间大于此时间,请使用 Visual Studio 分析器定位瓶颈并优化关键部分
  • 测量视图状态大小并分析内容,因为您使用了很多网格视图,这可能是问题所在,因此这里有几十个与该问题相关的帖子
  • 了解ViewState,以及它是如何工作的,这里是优秀的帖子
  • 你应该减少请求的数量,将 css 和 JavaScript 组合在一个文件中,有很多免费工具可以做到这一点
  • 开启 IIS gzip 压缩
  • 使用 fiddler 查看你的请求是如何在本地缓存的
  • 使用Css Image Sprites处理小图像
  • 使用 asp.net 缓存,它真的很好,它为许多使用场景提供了解决方案,特别是在流量增加是问题的情况下很有帮助
于 2012-04-25T14:18:14.640 回答
1

首先重点优化服务端。如果您有“许多网格视图”,则取决于它们的来源(例如数据库),您可以尝试改进数据访问的处理。搜索对您的应用程序有意义的适当优化技术。

您也可以尝试减少网格的数量。由于要求,这可能不是一个可能的选择。

您还可以查看将 ViewState 从页面顶部移动到底部,以及其他标准客户端优化(减少资源调用的数量,将 css 放在文档头部,将脚本放在文档末尾,启用客户端-side 缓存等...)。

于 2012-04-25T14:22:46.533 回答
1

ViewState 分块

作为压缩的替代方法,您可以考虑对 ViewState 进行分块,这基本上是将 ViewState 划分为多个隐藏字段,而不仅仅是一个。这可以对整体页面性能产生适度的改进。

查看这篇文章:大 ViewState 和 ViewState 分块

替代存储

除了页面上的隐藏字段之外,还有其他几种方法可以存储 ViewState 信息。

查看这篇文章:使用 ASP.NET 2.0 Provider Architecture 管理 ViewState

视图状态压缩

就个人而言,我发现压缩ViewState网络在性能方面的最大收益,所以如果有可能我肯定会探索它。Telerik 的RadCompression模块效果很好,但它不是免费的。你也可以自己实现它。

查看有关 ViewState 压缩的这些文章:

最后,在不需要跟踪 ViewState 的地方,设置EnableViewState为 false。

于 2012-04-25T15:25:51.310 回答
-1
  • ViewState Mode 可以设置为 false

即使您使用的是重量级控件,它们也可能不需要“启用” ViewState。因此,请尝试确定您何时不需要它们并将 ViewStateMode 属性设置为 false :

ViewStateMode="Disabled"

这将减小 ViewState 的大小,从而提高性能

  • gzip 压缩

按照本教程,您可以设置 ViewState 压缩以减小其大小并提高网站性能

  • 监控您的 ViewState 大小

通过使用这个 Mozilla插件,您可以监控 ViewState 的大小并查看这是否是网站运行缓慢的实际原因,因为这也可能与 sql 查询或与 ViewState 不同的其他原因有关

于 2012-04-25T14:22:45.427 回答