2

最佳实践要求我的网站严重依赖 Jquery,并且它来自 Google 的 CDN 的 JQuery UI 应该有一个备用方案,以防 CDN 由于某种原因失败。

我的问题是,我该如何针对给定的主题执行此操作?如果重要的话,我使用的是 Redmond 主题。

目前我计划使用类似的代码:

 if(!jquery){//load local file instead; }
    else if(!jquery.ui){//load local file instead; }

但如果可能的话,我也希望从谷歌加载主题文件。

有任何想法吗?:)

4

3 回答 3

1
if (typeof jQuery=='undefined') { //check if jQuery is loaded
    console.log('no jQuery');
}else{ //if jQuery loaded
    if (typeof jQuery.ui=='undefined') { //check if jQuery UI is loaded
        console.log('no jQuery UI');
    }
}

这是一个FIDDLE,切换左侧的库并检查控制台。

您需要一个间隔和一个超时来给库一个合理的加载时间。如果在几秒钟内未加载,请包含您自己的文件,或替换 src 属性以使用另一个 CDN。查看 Google 的分析代码或 Facebook 的插件等,了解如何在 head 部分插入新的脚本标签。

于 2012-05-09T16:35:06.090 回答
1

使用http://yepnopejs.com/

它是一个资源加载器,也适用于 CSS 文件。试一试,他们的网页上有这个例子。

这也是一个重复的问题:

如果 CDN 失败,如何回退到本地样式表(不是脚本)

于 2012-05-09T16:44:51.767 回答
0

您可以包含 CDN 参考,测试关键对象,如果它未定义,则:

1) 在您的服务器上托管文件(脚本和样式),如果 CDN 无法加载您的文件,则回退到这些文件。

2) **推荐** 使用现有的 CDN(亚马逊易于使用)并在 google cdn 无法正确加载时回退到这些文件。

于 2012-05-09T16:36:45.377 回答