Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.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_Jquery Ui - Fatal编程技术网

为什么将所有JavaScript文件转储到一个大文件中会改变它们的行为?

为什么将所有JavaScript文件转储到一个大文件中会改变它们的行为?,javascript,jquery,jquery-ui,Javascript,Jquery,Jquery Ui,我拍摄了我使用的jquery.js文件和jquery ui文件的快照,并将它们与我用于我的站点的所有其他.js文件一起转储到一个巨大的.js文件中 当我在没有切碎/打包的情况下执行此操作时,文件会停止工作,并且当我尝试将文件加载到我的站点而不是通常的.js文件时,文件会出现递归太深的错误。所有错误都来自jquery和jquery ui。使用一个简单的编号方案,我确保jquery.js/jquery-ui文件是文件中第一个列出的文件,并且顺序正确,与包含的单个文件相同 两个问题: 1 JavaSc

我拍摄了我使用的jquery.js文件和jquery ui文件的快照,并将它们与我用于我的站点的所有其他.js文件一起转储到一个巨大的.js文件中

当我在没有切碎/打包的情况下执行此操作时,文件会停止工作,并且当我尝试将文件加载到我的站点而不是通常的.js文件时,文件会出现递归太深的错误。所有错误都来自jquery和jquery ui。使用一个简单的编号方案,我确保jquery.js/jquery-ui文件是文件中第一个列出的文件,并且顺序正确,与包含的单个文件相同

两个问题: 1 JavaScript的include标记是否与将所有文件转储到一个大文件中的效果相同?JavaScript文件在自己的脚本标记中或在不同的文件中是否有额外的隔离/隔离

2我的目标是通过一个巨大的.js文件和我在我的站点中使用过的所有JavaScript,使我的站点更快,这个文件在JQuery中很重,并缩小该文件。为什么会被误导?有什么更好的方法

注意:谷歌的JQuery文件的CDN版本不适合我,我使用的所有JQuery插件/主题都不适合谷歌的版本,不管怎样,谁说他们可以成功使用谷歌的CDN是在撒谎


更新:感谢您在回答中提出的好建议,所有这些都帮助我了解了有关在生产服务器上部署JavaScript文件的更多信息。实际上,我一直在使用jQueryUI插件的最新SVN分支,UI插件中存在错误,导致它们无法与我的文件合并在一起。我得到了最新的主题滚动插件,这些插件已经缩小到一个文件中,并且解决了这个问题。

我建议使用脚本管理器,例如只注册您需要的文件和插件,并动态加载它们


这将使您的请求保持在最低限度,并且您不必在每页加载一些巨大的300k JS文件。

我建议使用脚本管理器,例如只注册您需要的文件和插件,然后动态加载它们


这将使您的请求保持在最低限度,并且您不必在一个页面上加载一些巨大的300k JS文件。

可能您的JavaScript文件有一些语法错误。浏览器可以在逐个加载文件时更正它们,但在合并坏文件时会失败。您可以尝试使用Rhino编译器编译文件


您还可以使用JSLint验证器,因为它可能无法处理jQuery。但是您仍然可以合并所有文件并验证它们。

您的JavaScript文件可能有一些语法错误。浏览器可以在逐个加载文件时更正它们,但在合并坏文件时会失败。您可以尝试使用Rhino编译器编译文件


您还可以使用JSLint验证器,因为它可能无法处理jQuery。但您仍然可以合并所有文件并对其进行验证。

另一个问题可能是加载顺序已更改。大多数JavaScript文件应该与加载顺序无关,但如果在完成以下操作后在末尾加载jquery:

$(document).ready(function() {});

您将遇到问题。

另一个问题可能是加载顺序更改。大多数JavaScript文件应该与加载顺序无关,但如果在完成以下操作后在末尾加载jquery:

$(document).ready(function() {});

你会遇到问题。

什么浏览器?jQuery的哪个版本?jslint对你的代码怎么说?听起来你肯定有一些语法错误,因为应该可以将它们组合起来。你正在使用的JQuery插件中有什么不适用于谷歌的CDN?什么浏览器?jQuery的哪个版本?jslint对你的代码说了些什么?听起来你肯定有一些语法错误,因为应该可以将它们组合在一起。你使用的JQuery插件中有哪些不适用于谷歌的CDN?