头部就把上面的代码放在<body>后面
尾部就放</body>前面
因该是加载问题,就是说当你分出去之后,在加载完之前你就用到了里面的内容。建议:在XXX.js 里加一个标签,写在义文件未尾,然后在调用页面写个函数侦测,
XXX.js : window._xxxloaded = true
当前页面:
<body onload="_loadTest()">
function _loadTest(){
if(window._xxxloaded){
做你想做的事
}else{
setTimeout(_loadTest, 0)
}
}
我想说一下我的看法,关于JavaScript写在尾部的。至于为什么CSS写在头部,是因为浏览器预先加载CSS后,可以不必等待HTML加载完毕就可以开始渲染页面了。
至于JavaScript写在尾部,这是因为JS主要扮演事件处理的功能。这样的话,页面渲染的时候和JS没有关系,放在后面慢慢加载,不要影响更重要的CSS和HTML的加载。
BUT!
但是,现在随着JS技术的发展,JS也开始承担起页面渲染的工作了,比如JQuery UI之类。如果这类JS加载需要很长时间,就会影响用户的体验,因为用户看到的是一个渲染不完全的界面。
所以,需要把JS区分看待,承担页面渲染工作的JS和承担事件处理的JS要区分看待。
我的建议是,缓存类似JQuery UI这样的静态文件,剥离渲染页面的JS和事务处理的JS。
渲染页面的JS放在前面,事务处理的JS放在后面,HTML代码可以放在两者中间,或者两者之前,只要保证DOM加载后能迅速进行JS渲染就可以了。