脚本和 link 标签回退

script & link tags fallback

如何将库包含到项目中? 你使用回退吗?

现在我正在使用我自己的(我认为现在是最好的变体)后备

function onErrorLoader(obj, link){
    if(obj.tagName != "SCRIPT")
        obj.href = link;
    else
        obj.src = link;
}

我是这样用的

首先,我在 html 中包含错误处理程序 <script src="js/onErrorLoader.js"></script>

接下来我可以这样调用我的库

CSS

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" onerror="onErrorLoader(this, 'vendor/bootstrap/dist/css/bootstrap.css')">

JS

<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"  onerror="onErrorLoader(this, 'vendor/bootstrap/dist/js/bootstrap.js')"></script>

你怎么看这件事? 你有什么建议可以让它变得更好,或者你知道更好的方法

万一CDN不回复

例如:我正在使用我自己的 CDN 中的脚本,但由于某些原因我的 CDN 没有回复

我从未见过这样做的。我相信那是因为它是不必要的。我从未见过我的样式或脚本没有加载的情况。甚至在我脑子里可能加载了 12 个脚本的时候。浏览器不会忘记加载资源。

大多数现代工作流都有预处理和串联,然后它们提供 2 或 3 个文件。人们使用任务运行器和构建工具,例如 grunt、gulp、brunch、broccoli、codekit 等。

我的建议是让浏览器加载文件而不用担心它,或者如果你真的想确定发生了什么/查找 "promises"