虽然这种技术在大多数情况下似乎完美地工作,并且确实加速了网站,但是我注意到在我处理网站时,javascripts没有加载或完全加载的错误显著增加,所以有三个问题:-
将脚本组合在一起在可靠性方面是否是一个好主意?
有没有办法测量错误的数量,即脚本未能加载的次数?
有没有办法“预加载”JavaScript或确保减少加载错误的数量?
将脚本组合在一起在可靠性方面是否是一个好主意?
有没有办法测量错误的数量,即脚本未能加载的次数?
有没有办法“预加载”JavaScript或确保减少加载错误的数量?
严重错误会导致脚本执行停止。如果您有多个脚本,其他脚本仍将运行;如果您将所有内容打包到一个大文件中,则会有更多的代码未被执行。因此,合并脚本对可靠性不利,但对其他目的(主要是加载时间)可能有好处。
所有浏览器都有某种类型的JavaScript控制台,可以显示错误数量。大多数浏览器也有一些开发者工具(Firefox中的Firebug,Opera中的Dragonfly等)。
我不确定您所说的预加载是什么意思。由于JavaScript文件可以以各种方式影响页面的其余部分,因此浏览器会在继续解析页面之前完全加载和执行脚本标记(这就是为什么脚本会使页面加载变慢的原因)。
合并JavaScript文件始终是最好的选择,除非这样做在逻辑上不合理(例如从Google Code下载jQuery而不是自己托管它)。
我总是尽可能地合并所有文件(JavaScript、CSS、图像(CSS Sprites)等),即使在开发过程中也是如此,我从未遇到任何问题。这样做可以减少http连接,速度更快,这一点绝不能低估。
关于您想要计算错误的事情,我不太明白您的意思。但是,像Google Chrome内置的调试工具或Firefox的Firebug这样的调试工具是调试JavaScript代码的好工具,并显示出现的错误列表。
至于预加载的事情:是的,它可以完成,但会变得混乱和不合逻辑。然而,我无法想象任何情况下需要麻烦地预加载JavaScript,与其只需让它直接运行,无需进行任何错误检查相比,这不是一个好的解决方案。
关于您遇到的错误,我的Chrome只指出了这个:
Uncaught ReferenceError: load is not defined
...似乎是在您的HTML文档的第55行设置的onload方法“load()”,当body标签开始时触发。
我在你的代码中看不到被调用在body标签上的load函数!我建议避免将JS添加到HTML文件中,它可以动态添加,并且在维护时更容易处理。
我认为你需要注意的事情是确保在定义之前不要尝试调用某些内容(也许你的单独JS文件的定义顺序与它们在单个JS文件中出现的顺序不同)。
Firebug适用于Firefox,是一个很好的开发工具,如果你还没有找到它的话。Webkit、Opera和IE也有各种其他的开发工具。