脚本&链接标签后备

时间:2016-07-31 16:14:03

标签: javascript css html5 fallback

如何将libs包含在项目中? 你使用后备吗?

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

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

我像这样使用它

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

在此旁边,我可以像这样调用我的libs

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 没有回复

1 个答案:

答案 0 :(得分:1)

我从未见过这样做过。我相信这是因为没有必要。我从未见过我的样式或脚本只是没有加载的场景。甚至当我可能已经在头部加载了12个脚本时。浏览器不会忘记加载资产。

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

我的建议是让浏览器加载文件而不用担心,或者如果你真的想要发生某些事情/查找“承诺”