有条件地加载多边形

Conditionally load polyfills

本文关键字:多边形 加载 有条件      更新时间:2023-09-26

我正在建立一个网站,我的目标群体是非常普遍的(年龄13-oo,所以你好IE9,你好古老的android浏览器),所以我需要一些东西的polyfills (viewport, calc等)。在我使用Modernizr和一些有条件的用户代理针对IOS 6-7等之前。然后使用yepnope.js加载特定的多边形。

现在modernizr 3.0已经发布了,我注意到modernizr .load()已经被弃用了。此外,也不推荐使用yepnope.js库。就像他们在网站上说的

"您可能应该遵循新的最佳实践。"

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

也许使用一些模块加载器(如require.js)会做的工作?如果是,怎么做?

我在https://cdn.polyfill.io维护polyfill服务,可以满足您的需求。我们有一个包含大约800个多边形的库,它们被选择性地捆绑在一起,只提供给需要它们的用户。你可以自己运行这个服务,也可以从我们的CDN中加载填充。

我看过的关于这种技术的最全面的文章是Philip Walton的《只在需要的时候加载Polyfills》。它太长了,不能引用任何部分,应该完整地阅读,所以我不打算复制/粘贴部分到这个答案中。

我花了一个上午自己想清楚了。你可以使用jQuery的getScript方法。我刚刚回答了一个类似的问题:https://stackoverflow.com/a/34518146/411436

from yepnope repo

说到有条件装运,我们建议你方为您正在测试的每个东西的组合输出一个构建。这可能听起来会生成很多文件(可能),但是电脑在这方面很在行。然后可以将脚本内联到您的页面只加载(异步!)一个构建的脚本针对该用户的特性进行了调优。所有的表现都赢了条件加载,没有加载100的延迟问题