当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《为什么将所有JavaScript文件转储到一个巨大的文件中会改变它们的行为?》经验,为你挑选了1个好方法。

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

当我这样做没有minfication/packing时,文件停止工作,当我尝试在我的网站上加载它而不是通常的.js文件时,我在文件上得到"递归太深"的错误.所有错误都来自jquery和jquery-ui.使用简单的编号方案,我确保jquery.js/jquery-ui文件是文件中列出的第一个文件,顺序正确(与包含为单个文件相同).

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

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

注意:Google的CDN版本的JQuery文件对我不起作用,我使用的所有JQuery插件/主题都不适用于Google的版本(无论如何谁说他们可以成功使用Google的CDN就是骗人的.)

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



1> alex2k8..:

可能你的JavaScript文件有一些语法错误.浏览器可以在逐个加载文件时更正它们,但在"坏"文件组合时失败.您可以尝试使用Rhino编译器编译文件(http://www.mozilla.org/rhino/)

java -cp build/js.jar org.mozilla.javascript.tools.jsc.Main giant.js

你也可以使用JSLint验证器(http://www.jslint.com/),想想它将无法处理jQuery.但你仍然可以将所有文件,并验证它们.

推荐阅读
mylvfamily
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有