Javascript 异步现代化可以吗?
Google PageSpeed测试告诉我使用Javascript 异步现代化可以吗?,javascript,performance,asynchronous,modernizr,Javascript,Performance,Asynchronous,Modernizr,Google PageSpeed测试告诉我使用async 例如,改变 到 modernizer还能正常工作吗?modernizer需要放在中,原因有两个: html5shiv需要为oldIE提供支持 在使用Modernizer放置的类时避免FOUC 特征条件样式 如果这两个属性对您都不重要,您可以使用异步属性和/或将其放在底部 请看《现代化》中发布的这一期,它不需要被放到《代码》中 无论何时,只要您将其包括在内,Modernizer最终都会很好地工作 如果使modernizr脚本异步,或在一
async
例如,改变
到
modernizer还能正常工作吗?modernizer需要放在
中,原因有两个:
请看《现代化》中发布的这一期,它不需要被放到《代码》中 无论何时,只要您将其包括在内,Modernizer最终都会很好地工作 如果使modernizr脚本异步,或在一些重要的页面加载事件(
DOMContentLoaded
,window.onload
…)之后包含它
- 特定css规则的应用(
,功能
类在文档的无功能
)将延迟标题
的可用性及其对象属性(即window.modernizer
)也将延迟modernizer.property
- 如果您使用
加载Modernizer,您的async
可能会遇到一件坏事,那就是在一段时间内应用了不正确的样式(依赖于CSS
类的样式) - 在您的
代码中可能发生的一件坏事是,如果您使用JS
全局对象,您可能无法直接使用它,因为它可能无法加载—您将不得不以某种方式等待它。因此,不再:modernizer
if(typeof Modernizr !== "undefined"){
//uitilize Modernizr global object here
} else {
// implement waiting for this object, let's say write short onModernizrLoad() function...
}
需要将Modernizer放在中,原因有两个
-在什么地方?标题部分?格式问题:)现在更新了答案。嗯,我只需要html5shiv,而且我没有真正使用条件,所以我想我不需要async
if(typeof Modernizr !== "undefined"){
//uitilize Modernizr global object here
} else {
// implement waiting for this object, let's say write short onModernizrLoad() function...
}