最近阅读了雅虎的网络优化提示并使用YSlow我已经在我的某个网站http://www.gwynfryncottages.com上实现了一些他们的想法,您可以在http://www.gwynfryncottages.com/js/gw-custom.js看到该文件。
虽然这种技术似乎在大多数情况下都能正常工作,并且确实加快了网站的速度,但我确实注意到javascripts在我工作时没有加载或者没有完全加载的错误数量明显增多在网站上有三个问题: -
在可靠性方面将脚本组合起来是一个好主意吗?
有没有办法衡量错误的数量,即脚本无法加载的次数?
有没有办法“预加载”javascript或确保减少加载错误的数量?
答案 0 :(得分:5)
当然很好。您不仅可以减少HTTP请求,还可以减少下载其他资源的延迟。
尝试使用minify:http://code.google.com/p/minify/,我一直在使用它,我没有抱怨。
我可以向你保证,组合文件不会导致任何错误,因为组合脚本与10个非组合脚本相同,它们都以相同的方式加载(按顺序排列,从左到右,从上到下)。仔细检查你合并它们的方式。
答案 1 :(得分:1)
脚本执行在严重错误时停止。如果你有多个脚本,其他脚本仍会运行;如果你把所有内容都打包成一个大文件,那么就会有更多的代码无法执行。因此,组合脚本不利于可靠性,但可以用于其他目的(主要是加载时间)。
所有浏览器都有某种javascript控制台,可以显示错误的数量。大多数人也有某种开发工具(Firefox中的Firebug,Opera中的Dragonfly等)。
我不确定预加载是什么意思。由于javascript文件可以通过各种方式影响页面的其余部分,因此浏览器将在继续解析页面之前完全加载并执行脚本标记(这就是脚本可以减慢页面加载速度的原因)。
答案 2 :(得分:0)
我看不到你的身份标签上调用的代码中的加载函数!我试着避免将JS添加到您的HTML文件中,它可以动态添加,并且可以减少麻烦,并且更容易维护。
我要说的是你需要注意的事情是确保你在定义它之前没有尝试调用某些东西(也许你的单独JS文件的定义顺序与它们在单个文件中的出现顺序不同JS文件)。
firefox的firebug是一个很好的开发工具,如果你还没有找到它。 Webkit,Opera和IE也有各种其他开发工具。
答案 3 :(得分:0)
组合JavaScript文件总是是最好的方法,除非它在逻辑上不合理(从Google代码下载jQuery而不是自己托管它是一个很好的例子)。
我总是尽可能多地组合文件(JavaScript,CSS,图像(CSS Sprites)等),也在开发中,我从来没有遇到任何问题。对于较少的http连接,速度会更快,在任何情况下都不应低估它。
关于你想要计算错误,我并不完全明白你的意思。但是,调试工具(如Google Chrome中的内置工具或Firebug for Firefox)是调试JavaScript代码的好工具,并显示发生错误的列表。
对于那个预加载的东西:是的,它可以做到,虽然它会变得讨厌和不合逻辑。 然而,我无法想到无论如何哪里有一个很好的解决方案来解决加载JavaScript的麻烦,相比之下只是让它工作正常盒子,不需要错误检查。
关于您遇到的错误,我的Chrome指出的唯一一个错误就是:
Uncaught ReferenceError: load is not defined
...这似乎是在启动正文标记时在HTML文档的第55行设置的onload方法“load()”。