首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以使用<script async>加载babel-polyfill吗?

我可以使用<script async>加载babel-polyfill吗?
EN

Stack Overflow用户
提问于 2016-11-23 10:39:06
回答 3查看 1.7K关注 0票数 2

我的页面上有一个模态对话框,当用户与页面进行某种形式的交互时,该对话框会弹出。

我用React制作了它,并使用webpack创建了一个整洁的小包,通过脚本标签将其包含在我的页面中。

因为它使用生成器,而且我必须支持Internet 11,所以我需要巴贝尔-聚脂,所以我的代码如下所示:

代码语言:javascript
复制
<script src="//cdnjs.cloudflare.com/ajax/libs/babel-polyfill/6.9.1/polyfill.min.js"></script>
<script src="/survey-modal.js" async></script>

困扰我的是,我正在同步加载Babel多边形填充。如果我将异步添加到第一个脚本标记中,我的代码就能工作,但我不确定这是否是确定性的,也就是说,代码是否只是偶然地工作,因为多填充在调查模式脚本之前完成了加载。

当从CDN加载babel-聚脂填充时,使用安全吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-11-23 10:46:40

当从CDN加载babel-聚脂填充时,使用安全吗?

不不是的。async脚本“一旦可用”就会执行,执行顺序也得不到保证。因此,在以下示例中:

代码语言:javascript
复制
<script src="polyfill.min.js" async></script>
<script src="survey-modal.js" async></script>

有一种可能性,“多填充”脚本后执行“调查-模式”。更好的办法如下:

代码语言:javascript
复制
<script src="polyfill.min.js" defer></script>
<script src="survey-modal.js" defer></script>

defer脚本是在文档被解析后下载的(因此它不会阻止页面呈现),但是执行的顺序是可以保证的。

PS:您提到了当两个脚本都是异步的时候,您的代码可以工作。是的,这是偶然的。它将在从浏览器缓存加载多填充时工作,如果通过网络获取则可能无法工作。

票数 5
EN

Stack Overflow用户

发布于 2016-11-23 10:40:57

如果您使用异步标记,您不能保证它会在您的模式之前加载,所以我不会那样使用它。

票数 0
EN

Stack Overflow用户

发布于 2016-11-23 10:44:12

不,这不是决定性的,也不会总是起作用。

如果您愿意,您可以使用节流的铬,并看到,当下载速度很低,它将不会总是工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40762095

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档