Javascript 异步现代化可以吗?

Javascript 异步现代化可以吗?,javascript,performance,asynchronous,modernizr,Javascript,Performance,Asynchronous,Modernizr,Google PageSpeed测试告诉我使用async 例如,改变 到 modernizer还能正常工作吗?modernizer需要放在中,原因有两个: html5shiv需要为oldIE提供支持 在使用Modernizer放置的类时避免FOUC 特征条件样式 如果这两个属性对您都不重要,您可以使用异步属性和/或将其放在底部 请看《现代化》中发布的这一期,它不需要被放到《代码》中 无论何时,只要您将其包括在内,Modernizer最终都会很好地工作 如果使modernizr脚本异步,或在一

Google PageSpeed测试告诉我使用
async

例如,改变


modernizer还能正常工作吗?

modernizer需要放在
中,原因有两个:

  • html5shiv需要为oldIE提供支持
  • 在使用Modernizer放置的类时避免FOUC 特征条件样式
  • 如果这两个属性对您都不重要,您可以使用异步属性和/或将其放在底部


    请看《现代化》中发布的这一期,它不需要被放到《代码》中

    无论何时,只要您将其包括在内,Modernizer最终都会很好地工作

    如果使modernizr脚本异步,或在一些重要的页面加载事件(
    DOMContentLoaded
    window.onload
    …)之后包含它

    • 特定css规则的应用(
      功能
      无功能
      类在文档的
      标题
      将延迟
    • window.modernizer
      的可用性及其对象属性(即
      modernizer.property
      )也将延迟
    总之,

    • 如果您使用
      async
      加载Modernizer,您的
      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...
    }