首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在asp.net MVC3中优化网站/减少加载时间

在asp.net MVC3中优化网站/减少加载时间
EN

Stack Overflow用户
提问于 2011-12-14 05:46:11
回答 4查看 4.8K关注 0票数 4

我已经建立了一个使用nopCommerce开源测试网站,一切都很好,我需要知道,为什么我的网站加载时间大于6秒,主页工作良好,但类别时,点击像6-10秒。如何检查http请求和对db的调用,以便跟踪哪个函数花费了很长时间。

测试网站是test website,谢谢

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-12-14 05:52:52

我会按这个顺序尝试的东西:

  • MvcMiniProfiler.如果之前的方法没有产生任何有益的结果,那么
  • 使用.NET .NET分析我的代码是否存在可能的性能瓶颈,并将错误提交给nopCommerce支持。

在此期间,我可能还会检查我的主机提供商是否他不是导致速度缓慢的原因。

票数 6
EN

Stack Overflow用户

发布于 2011-12-15 04:05:23

作为一种快速而繁琐的检查,您可以将生成响应所需的时间作为IIS日志中的一列进行添加-这将使您了解服务器处理页面的速度是否很慢,或者您是否需要执行一些前端优化工作。

在前端,您需要做的第一件事是将主题的所有CSS文件合并为一个文件,以便在往返过程中保存-在获得CSS之前,浏览器无法呈现页面

你在头部的所有.js文件也会阻塞页面,你能合并它们并在以后加载它们吗?

imagegen.ashx的性能看起来有点慢--您需要动态生成横幅,还是可以预先生成横幅?

如果生成页面的后端很慢,web上有一些脚本可以显示哪些查询使用了最多的CPU,进行了最多的IO操作等。

票数 1
EN

Stack Overflow用户

发布于 2012-05-20 04:45:10

下面是你可以改进的地方,

1.组合你的js。

有一些东西你可以使用,例如,jsMin,你可以阅读这个post。然而,jsmin似乎并没有压缩合并后的js。

另一种选择是jmerge,它有点像是事后才做的,在某种意义上说,你需要让站点准备好用jmerge来阻止它们,因为它只接受一个http链接。

到目前为止,我所知道的最好的一个是MVC4的捆绑和缩小特性。它是MVC4的一部分,但是,你可以为你的MVC3应用获得一个Nuget包。

建议:捆绑你的每个js不一定是个好主意,它甚至会适得其反,因为你最终会得到一个大的js,浏览器将不得不顺序下载,而不是下载几个较小的。(您可能希望查看head.js以使js并行下载),因此这里的诀窍是保持平衡。我最终从google CDN获得了一个jquery,并将其余的js捆绑在一起。

2.将js放在页面的底部,这样浏览器就不必在开始呈现页面之前先加载js。但是你需要注意这一点,因为通常你会让jquery函数在页面头部的document.ready()上做一些事情,如果可能的话,我建议你把它移到页面的底部。

如果您将布局页面中的js引用和scirpt块移到底部,那么您很可能会在个人视图中遇到嵌套js引用和js脚本块的问题。不用担心,然后您需要在视图中使用@section (可能适用于其他线程中的讨论),并在布局页面中呈现它,以便视图中的引用和脚本块在运行时呈现在页面的底部。

2.直接使用CDN。

3.组合CSS将它们组合成一个,使用与组合js相同的工具,但您需要在页眉而不是底部引用它。

4.在web配置文件中启用静态内容缓存,如下所示

它不会对第一次加载有帮助,但肯定会让返回用户的速度更快。

5.启用url压缩

  1. 首次加载时间这是webpagetest.org使用的指标之一。但不要把头撞到这个上面,因为它基本上说明了你的web服务器可以提供多快的内容。因此,从软件方面来说,您可能无法在这里做太多事情。

希望这能有所帮助!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8496631

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档