将JavaScript放在页面末尾会产生错误

MrA*_*An3 3 javascript

我最近读到,为了加快网页加载,最好将JavaScript链接放在最后.我做了,但现在引用文件的功能不起作用.如果我把链接放在页面的开头,一切都很好.

将JavaScript放在最后只能在某些情况下工作吗?

cle*_*tus 5

我也经历了一些测试.如果你正在加载一个Javascript文件,最好把它放到最后但是它确实带来了一些重要的警告.

首先,这样做通常会使我的一些视觉效果变得明显.例如,如果我使用jQuery格式化表格,那么表格将无法格式化,然后代码将运行以重新格式化它.我没有发现这是一个很好的用户体验,宁愿页面完整.

其次,将它放在最后使得很难将代码放入页面中,因为通常还没有函数存在.如果您的页面中有此内容:

$(function() {
  // ...
});
Run Code Online (Sandbox Code Playgroud)

好吧,直到定义jQuery对象才行.如果它在页面末尾定义,则上面会产生错误.

现在你可以争辩说所有样式代码都可以放在外部文件中,但出于性能原因这是错误的.我开始在一个项目上执行此操作,然后发现我的页面花了一秒钟来浏览所有已集中的Javascript.所以我为相关行为创建了函数,然后在每个页面中调用了相应的函数,将Javascript加载运行时间减少到50-200ms.

最后,您可以(并且应该)通过对Javascript文件进行版本控制然后使用远期期限Expires标头来最小化Javascript的加载时间,这样它们只会加载一次(每次更改时),此时它们位于该文件基本上无关紧要.

总而言之,我发现将Javascript文件放在文件的末尾是很麻烦的,最终是不必要的.