我有一个ASP.NET MVC项目,其运行速度与糖蜜一样慢。我在一个特定的电话上打开了Fiddler,发现了几个电话,其中有很大的改进空间,至少可以说:
我理解的蓝线是对我的控制器的调用,我知道在哪里优化那些东西。但我看到一堆绿线(我认为这意味着javascript),而且那些也是长时间的heckuva。我必须假设jQuery和Kendo脚本通常不需要4-6秒就可以转换,因此我们的项目代码中必定存在导致速度缓慢的问题。但是,如何跟踪需要优化的代码?
编辑: @DaggNabbit在下面的评论中指出,缓慢是因为这些Javascripts正在使用cachebuster参数调用,因此每次调用都会重新下载它们!但我在代码中的任何地方都看不到我们明确添加了一个缓存器。 e.g:
<script src="@Url.Content("~/Scripts/kendo.web.min.js")"></script>
...
@Scripts.Render("~/bundles/jquery", "~/bundles/jquerymobile")
我真的不是UI专家,但我无法看到缓存器的来源。还有其他想法吗?
答案 0 :(得分:1)
为了提高性能,你可以使用javascript闭包和css闭包,这些都负责将所有.js文件绑定到一个文件中,并将所有css文件绑定到antoher单个文件中,这样会增加你的加载时间。
答案 1 :(得分:1)
@DaggNabbit正确识别的问题是使用cachebuster参数调用javascripts。我邀请他把答案作为正确答案发表;当他这样做时,我会给他答复。
与此同时,如果您对为什么插入了缓存清单感兴趣,请参阅here。
答案 2 :(得分:0)
我建议将所有javascript捆绑到一个compressed.js文件中,将所有css文件捆绑到一个compressed.css文件中。这将减少加载所需的时间。
目前,需要4-6秒,因为js / css文件等待另一个文件完全加载,而不是向服务器发出自己的进程请求。在页面加载时调用控制器时,您还需要在查询中进行代码优化。
您将获得免费的dll压缩并将所有js / css文件捆绑到一个压缩文件中。
希望你明白我的意思。