有条件地加载polyfills

时间:2015-09-27 15:17:53

标签: javascript modernizr polyfills

我正在建立一个我的目标群体非常普遍的网站(年龄13岁,所以你好IE9,你好古老的android浏览器),所以我需要polyfills一些东西(视口,计算等)。之前我使用Modernizr和一些条件用户代理来定位IOS 6-7等。然后使用yepnope.js我正在加载特定的polyfill。

既然modernizr 3.0已经出来了,我注意到了Modernizr.load()已被弃用。此外,不推荐使用yepnope.js库。正如他们在自己的网站上所说的那样

  

"您应该遵循新的最佳做法。"

但我找不到他们中的任何一个。谷歌搜索了一段时间后,每个人都推荐Modernizr和Yepnope。但这个问题是如此新鲜(弃用,新版本的Modernizr),我找不到任何新的替代方法。

使用某些模块加载器(如require.js)可能会完成这项工作吗?如果是的话,怎么样?

4 个答案:

答案 0 :(得分:4)

我维持https://cdn.polyfill.io的polyfill服务,可满足您的需求。我们有一个大约800个polyfill的库,它们有选择地捆绑在一起,只供需要的用户使用。您可以自己运行服务,也可以从我们的CDN加载polyfill。

答案 1 :(得分:3)

我在这项技术上看到的最全面的写作是Philip Walton的Loading Polyfills Only When Needed。在这里引用任何部分太长了,应该全部阅读,所以我不打算将部分复制/粘贴到这个答案中。

答案 2 :(得分:2)

我花了我的早晨自己搞清楚这一点。您可以使用jQuery's getScript method。我刚才在这里回答了类似的问题:https://stackoverflow.com/a/34518146/411436

答案 3 :(得分:1)

来自yepnope repo

  

在有条件地装货时,我们建议您   为您正在测试的事物的每个组合输出构建。这个   可能听起来会产生很多文件(可能),但是   电脑很擅长。然后你可以将脚本内联到   您的页面只加载(异步!)一个构建的脚本   被调整到该用户的功能。所有表现的胜利   条件加载,并没有加载100的延迟问题   事情一下子。