在CDN被阻止/不可用的情况下,如何加载本地脚本文件作为后备?[重复]

我将CDN用于以下javascript:

  • https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js
  • https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.10/jquery-ui.min.js
  • http://ajax.aspnetcdn.com/ajax/mvc/3.0/jquery.validate.unobtrusive.min.js
  • http://ajax.aspnetcdn.com/ajax/jquery.validate/1.7/jquery.validate.min.js

对于每个副本,在可能被阻止/不可用的情况下,如何恢复使用本地副本?

回答:

要确认是否加载了cdn脚本,您可以检查该脚本定义的任何变量/函数是否存在,如果未定义-那么cdn失败,您需要加载本地脚本副本。

基于此原理的解决方案如下:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>

<script>window.jQuery || document.write('<script src="js/libs/jquery-1.5.1.min.js">\x3C/script>')</script>

(如果没有window.jQuery属性定义的cdn脚本未加载)。

您可以使用此方法构建自己的解决方案。例如,jQuery工具提示插件会创建$.tooltip()函数,因此我们可以使用以下代码进行检查:

<script>

if (typeof $.tooltip === 'undefined') {

document.write('<script src="js/libs/jquery.tooltip.min.js">\x3C/script>');

}

</script>

以上是 在CDN被阻止/不可用的情况下,如何加载本地脚本文件作为后备?[重复] 的全部内容, 来源链接: utcz.com/qa/397242.html

回到顶部