Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.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 如何减少Java脚本的加载时间?_Javascript - Fatal编程技术网

Javascript 如何减少Java脚本的加载时间?

Javascript 如何减少Java脚本的加载时间?,javascript,Javascript,我的页面上有以下代码: <script src="/Scripts/common/layout/addAccessControls.js"></script> <script src="/Scripts/common/layout/addAjaxControls.js"></script> <script src="/Scripts/common/layout/addBodyControls.js"></script> &l

我的页面上有以下代码:

<script src="/Scripts/common/layout/addAccessControls.js"></script>
<script src="/Scripts/common/layout/addAjaxControls.js"></script>
<script src="/Scripts/common/layout/addBodyControls.js"></script>
<script src="/Scripts/common/layout/addContentControls.js"></script>
<script src="/Scripts/common/layout/addThemeControls.js"></script>
<script src="/Scripts/common/layout/hashClick.js"></script>
<script src="/Scripts/common/layout/setSideBar.js"></script>

所有脚本都将一个接一个地加载,这是否正确?如果是这样的话,有没有一种方法可以一次完成多个负载


只是想澄清一下这个问题。我可以缩小这些和concat,也许它们已经被模拟和浓缩了:-)我感兴趣的是找到给定这些精确文件的加载过程。是一个接一个的文件吗。浏览器是否对并行加载执行任何操作。谢谢

是的,它们将被依次加载和执行。你不能改变这一点

但是,如果您关心性能,您可能会高兴地了解到,下载过程不同,浏览器可能会将其并行化

通过打开,您可以在Chrome中看到它


如果您想减少总时间,最好的解决方案是将所有文件连接在一个文件中(如果可能,缩小它们,但重要的操作是连接)。

好的,第一个问题是脚本一个接一个地加载。 第二个问题是请求的数量。请求越多,所需时间越长

最简单的方法是将服务器端的文件压缩成一个
.js
文件,这样只剩下一个请求。这将加快事情的发展

如果您另外缩小脚本,这也会加快速度

根据您使用的服务器端框架,有多种解决方案可供选择。例如,对于Node.js,您可以使用它在运行时执行此操作

当然,也可以分别通过构建作业手动执行此操作


PS:当然,您可以使用其他机制来加载脚本文件,例如动态添加脚本标记,这将允许您并行加载。有关详细信息,请参阅。

您可以使用以下工具将其连接并缩小。如果你有一台Mac电脑,甚至有一款很棒的应用程序可以自动完成这个过程,称为

,这取决于浏览器和下载的其他文件(例如图像)的数量,你可能会有多个JavaScript文件按顺序同时下载


您可以通过使用Firebug或Chrome的开发工具看到这种情况。您会注意到,您的浏览器将始终加载多个文件,但同时下载的最大数量因浏览器和所使用的版本而异。

如果您的问题与标题有关(如何减少Java脚本的加载时间?),一个好方法是

  • 检查代码,必要时删除并优化
  • 连接所有文件(按加载顺序)
  • 缩小代码
  • 使用gzip压缩为单个文件提供服务
  • 利用缓存来避免不必要的请求

根据浏览器的不同,将并行加载不同数量的文件。它们应该并行执行,但为了获得最佳结果,将事件处理程序附加到页面上,如
onload


如果文件不发生更改,则通过减少服务器往返,连接文件将缩短加载时间。您还可以尝试使用缓存清单或使用AJAX惰性地加载第三级脚本。

您可以尝试使用这种技术,无论哪种技术适合您现有的代码

1. Use minify version of JS code
2. Add only one external JS file (copy all content to one)
3. Use cookie less domain

您可以在将文件推送到生产环境时合并文件,以获得单个文件[并将其最小化]。。。
通过这种方式,您将保存请求、手工检查和之间的所有步骤…

您可以使用
async
命令(HTML5):


这是脚本阻塞。它是一种浏览器功能。不同的浏览器并行下载不同数量的文件。脚本将在每个脚本之后加载和执行。你可以阅读史蒂夫·苏德斯和尼古拉斯·扎卡斯的这些文章。这可以帮助你


http://www.nczonline.net/blog/2009/06/23/loading-javascript-without-blocking/

您可以使用minify javascript,因为压缩javascript代码可以节省大量字节的数据,加快下载、解析和执行时间。我知道我可以使用minify,但我想这不是问题所在:-(我还建议在页面末尾放置尽可能多的要加载的内容,以便在这些请求发生之前加载和显示页面内容。你好,Golo,我知道有很多东西,如concat和minify,但我的问题只是关于并行或串行加载。谢谢。Sam。你好,Golo。我将检查链接。这可能是通知。)我正在寻找的脚本。抱歉,如果我对问题不清楚而感到困惑。Golo-快速问题。如果我查看浏览器的“网络”选项卡,我认为我看到脚本正在同时下载。这如何解释你在说“一个接一个地加载”时说的话答案可能会长一点,但之前已经讨论过;-)。因此,我不想重写它,而是让你指出……我认为这应该回答它:-)。你能解释更多吗。你说“它们将一个接一个地加载”,然后说“下载过程不同”。我假设这些文件没有缓存在任何地方。浏览器可以并行执行几个请求(通常是4个)。正如您可以看到的,使用网络面板及其时间轴,您将同时有多个下载。但是脚本将按照您指定的顺序一次加载并执行一个。好的,我想我明白您的意思了。所以,即使最后一个脚本是先下载的,它也不会执行,直到它之前的脚本?对吗?谢谢,你好,米哈。我知道我可以缩小,但这不是问题所在。谢谢:-)SamWell这是因为这就是你“减少我的javascripts加载时间”的方式-将信息连接到一个文件(如果你在多个站点上共享其中的一些文件,可能会更多),然后缩小:)这里的一些人一个接一个地说加载了,你说(另外我相信我看到了)它们有时是并行加载的。你能澄清一下吗。如果没有
<script async src="slow.js"></script>
var script = document.createElement("script");
script.async = false;
script.src = url;
document.head.appendChild(script);