Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.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 从不同的js文件调用函数是否比从一个文件调用慢?_Javascript - Fatal编程技术网

Javascript 从不同的js文件调用函数是否比从一个文件调用慢?

Javascript 从不同的js文件调用函数是否比从一个文件调用慢?,javascript,Javascript,在不同的JavaScript文件中调用函数是否会减慢浏览器的JavaScript处理速度 换句话说,我可以将函数从一个文件调用到另一个文件吗? 或者在同一个文件中调用函数会更好吗?这根本没有区别。无论代码来自哪个脚本文件,它都会被插入到文档的上下文中,这对于页面上的所有脚本文件和内联脚本都是一样的 您可以使用这个令人难以置信的草率脚本来测试它: 有点离题,但其他一些回答者绝对正确地指出,虽然执行函数没有区别,但脚本加载时间可能会有很大差异。。。您没有询问页面加载时间,但仍然值得指出。只要它们都已

在不同的JavaScript文件中调用函数是否会减慢浏览器的JavaScript处理速度

换句话说,我可以将函数从一个文件调用到另一个文件吗?
或者在同一个文件中调用函数会更好吗?

这根本没有区别。无论代码来自哪个脚本文件,它都会被插入到文档的上下文中,这对于页面上的所有脚本文件和内联脚本都是一样的

您可以使用这个令人难以置信的草率脚本来测试它:


有点离题,但其他一些回答者绝对正确地指出,虽然执行函数没有区别,但脚本加载时间可能会有很大差异。。。您没有询问页面加载时间,但仍然值得指出。

只要它们都已加载,这是标准功能,不会导致性能损失。

从执行角度看,没有区别


但请记住,加载一个多合一JS文件比加载许多JS文件要快——第一个文件只需向服务器请求一次。

好吧,脚本标记会相互阻塞,因此它们不会同时下载。为此,您需要进行异步加载

其次,您必须处理到服务器的往返调用以获取文件,并为此承受延迟

最后,您可以解析和执行代码。假设没有重复的函数,它们将解析相同的函数并执行相同的函数


是的,速度较慢,但不是因为JavaScript,而是因为HTML和网络。请查看史蒂夫·苏德的网站或他关于性能的书。

这不是事实。浏览器可以一次下载多个文件,因此如果将1MB文件拆分为250KB文件,您将同时传输它们,有效地将传输时间缩短40-50%?为什么?如果您将1MB文件拆分为2x500KB,那么您仍然需要发送1MB,如果连接速度为1mbps,则在这两种情况下都意味着~8s(没有神奇的时间切割)。告诉我为什么谷歌使用图像精灵将所有图像打包在一个图像中?在您的情况下,必须打开第二个连接(SYN往返)并查询服务器,gzip已初始化-额外成本。此外,浏览器允许打开最多2个到同一主机的连接-可能第一个连接将被HTML、CSS或IMG占用。此外,为了评估JS,浏览器必须完成加载所有JS文件。更多的JS文件在以后延迟加载的情况下是有意义的。@Mike我知道您熟悉Rails,所以我认为您应该熟悉将多个Javascript缓存到一个中的部分。他们写这篇文章有很好的理由。为什么投反对票?完全合理的回答和观察。