【发布时间】:2021-08-05 03:58:26
【问题描述】:
我想包含来自 CDN 的第三方库,例如 jQuery。我还想创建一个回退,所以如果 CDN 失败,我会包含我自己的本地副本。我遵循了here的建议:
这就是我在页面中包含 jQuery 的方式:
<script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
<script>window.jQuery || document.write('<script src="/Scripts/jquery-3.3.1.min.js"><\/script>');</script>
同时Google is saying thatdocument.write()不可靠,不应该使用:
使用 document.write() 可以将页面内容的显示延迟几十 秒,对于慢速用户来说尤其成问题 连接。因此 Chrome 会阻止 document.write() 的执行 在许多情况下,这意味着您不能依赖它。
是否有任何替代方法可以为 CDN 创建后备?
【问题讨论】:
-
您可以将动态创建的
<script>元素附加到DOM。这与document.write的效果相同,但效果要好一些。但是,AFAIK,通常不需要为 CDN 创建后备(可靠性是其要点之一) -
我不会在我的网站上为 CDN 创建后备,但您可以使用@dcangulo 的回答,只要您想要它们。
标签: javascript html cdn fallback