javascript在网页中一般的情况就是加载之后直接运行,即使是延迟加载的javascript也是这样(参看我之前的文章:7种延迟加载javascript方法),问题是运行javascript对于浏览器来说也是很耗时的,而且运行的时候会block其他资源的下载。所以就有了延迟运行的概念。steve也谈到这个问题:http://stevesouders.com/controljs/
解决办法是:
现预先载入javascript,参看:几种Preload javascript,CSS, image的方法。注意我们不能使用前3中方法来预先载入,这样代码就会直接执行了。载入javascript代码之后是不会被执行的。
当你需要运行的时候,两种方法:1。使用appendChild再把代码载入一次,这时代码已经在缓存中,读取会很快;2。使用eval函数
或者使用defer属性,还有一种就是google使用的注释行方法:http://googlecode.blogspot.com/2009/09/gmail-for-mobile-html5-series-reducing.html