Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何找出Javascript下载速度如此之慢的原因?_Javascript_Jquery_Asp.net Mvc 4_Kendo Ui_Fiddler - Fatal编程技术网

如何找出Javascript下载速度如此之慢的原因?

如何找出Javascript下载速度如此之慢的原因?,javascript,jquery,asp.net-mvc-4,kendo-ui,fiddler,Javascript,Jquery,Asp.net Mvc 4,Kendo Ui,Fiddler,我有一个ASP.NETMVC项目,它运行得非常慢。我打开Fiddler的一个电话,发现有几个电话有很大的改进空间,至少可以这么说: 我理解的蓝线是对我的控制器的调用,我知道应该去哪里优化这些东西。但我看到了一堆绿线(我认为这意味着javascript),这些也需要很长时间。我必须假设jQuery和剑道脚本通常不需要4-6秒的时间,所以我们的项目代码中一定有某种东西导致了速度缓慢。但我如何追踪哪些代码需要优化 EDIT:@DaggNabbit在下面的评论中指出,之所以速度慢,是因为这些Java脚

我有一个ASP.NETMVC项目,它运行得非常慢。我打开Fiddler的一个电话,发现有几个电话有很大的改进空间,至少可以这么说:

我理解的蓝线是对我的控制器的调用,我知道应该去哪里优化这些东西。但我看到了一堆绿线(我认为这意味着javascript),这些也需要很长时间。我必须假设jQuery和剑道脚本通常不需要4-6秒的时间,所以我们的项目代码中一定有某种东西导致了速度缓慢。但我如何追踪哪些代码需要优化

EDIT:@DaggNabbit在下面的评论中指出,之所以速度慢,是因为这些Java脚本是用cachebuster参数调用的,所以每次调用都会重新下载它们!但在我的代码中,我看不到任何地方显式添加了cachebuster。e、 g:

<script src="@Url.Content("~/Scripts/kendo.web.min.js")"></script>
...
@Scripts.Render("~/bundles/jquery", "~/bundles/jquerymobile")

...
@Scripts.Render(“~/bundles/jquery”,“~/bundles/jquerymobile”)

我真的不是UI专家,但我看不出cachebuster是从哪里来的。还有其他想法吗?

我建议将所有javascript捆绑到一个压缩的.js文件中,将所有css文件捆绑到一个压缩的.css文件中。这将减少加载所需的时间

目前,这需要4-6秒,因为js/css文件等待另一个文件完全加载,然后向服务器发出自己的进程请求。在页面加载时调用控制器时,也需要在查询中优化代码

您将获得压缩的免费dll,并将所有js/css文件捆绑到一个压缩文件中


希望你明白我的意思。

为了提高性能,你可以使用javascript闭包和css闭包,它们负责将所有.js文件绑定到一个文件中,并将所有css文件绑定到另一个文件中,以增加加载时间。

正确识别的问题是@DaggNabbit正在使用cachebuster参数调用javascripts。我已经邀请他把他的答案作为正确答案张贴出来;当他这样做的时候,我会给他的答案


同时,如果您对插入cachebuster的原因感兴趣,请参阅。

这似乎与javascript执行无关。Fiddler只显示通过网络发送/接收的内容。因此,绿线可能显示浏览器请求(即kendo.web.min.js文件)所用的时间。还是我在问题中遗漏了什么?所有这些URL上的下划线参数是怎么回事?某种缓存破坏者?为什么要放弃jQuery和剑道这样的静态缓存呢?为什么要将这些脚本加载三次?@DaggNabbit-这是一个很好的观点-它看起来确实像一个cachebuster!但我只是在我的代码库中搜索了所有对“kendo.web.min.js”的引用,我看不到我们用cachebuster来称呼它。Razor代码示例:
还有什么其他方法可以找到cachebuster的来源吗?谢天谢地,我处理.NET黑魔法的日子已经一去不复返了,所以我真的不知道,但是,如果你只从web根目录提供此应用程序,你可以去掉
@Url.Content
~
,只使用普通路径;我不认为它会被重写。@DaggNabbit-请给出一个答案,里面有一个cachebuster,每次都会强制重新加载javascript。我将发布一个单独的问题,以了解cachebuster的来源。