脚本和链接标签后备

Art*_*Sky 5 html javascript css fallback

如何将库包含到项目中?你使用后备吗?

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

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

我这样用它

首先,我将错误处理程序包含在我的 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')">
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)

你怎么看待这件事?您可以建议如何让它变得更好,或者也许您知道更好的方法来做到这一点

所有这些都是为了以防CDN不回复

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

she*_*rek 1

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

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

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