2012-05-09 46 views
2

最佳实践表明,我的网站严重依赖Jquery和从Google CDN提供的JQuery UI,如果CDN由于某种原因失败,应该有一个回退。如何检查是否加载了一个Jquery UI主题?

我的问题是,我该如何去做一个给定的主题?如果有关系,我使用雷德蒙德主题。

目前我打算使用的代码是这样的:

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

,但我想从谷歌正在加载主题文件的回退过,如果可能的话。

任何想法? :)

+0

是不是有可能在你的服务器发布的jQuery,jQuery UI的和主题文件吗? – hkutluay

+0

@hkutluay可以,但通过提供来自Google CDN(最流行的afaik)的公共资产,它可以被缓存,所以许多用户已经拥有它并且不必下载它。缺点是依靠CDN,这正是我想要处理的主题文件。 –

+0

好的,谢谢你的解释 – hkutluay

回答

1

使用http://yepnopejs.com/

这是一个资源装载机的伟大工程与CSS的文件。试一试,这个例子出现在他们的网页上。

而且这是一个重复的问题:

How to fallback to local stylesheet (not script) if CDN fails

+0

这很好,非常感谢。我的主题技术上是一个CSS文件,所以这应该是一个不错的选择。重复问题的道歉,没有发现一个搜索。欢呼的答案! :) –

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的插件等,看看如何在头部添加新的脚本标记。

+0

Thankyou,但这不是我想要的。我正在寻找一种方法来测试加载的自定义jquery UI主题。我知道jQuery和jQuery UI的方法,但是我现在也依赖CDN来实现这个主题,如果没有回退,这是不理想的。 –

+0

检查主题的源代码,找到一个具有唯一名称的函数,并检查它是否已定义,就像上面的typeof一样。 – adeneo

+0

对不起,如果我没有清楚 - jQuery UI主题只是.css文件。对不起,我应该指定。 Thankyou虽然! :) –

0

可以包括CDN参考,测试的主要对象,如果它是不确定的,那么:

1)您的服务器上托管的文件(脚本和样式),并退回到这些文件如果CDN没有加载你的文件。

2)** 建议 **使用现有的CDN(亚马逊的易于使用),并回退到这些文件,如果谷歌CDN没有正确加载。

+0

这基本上是我打算做的。我只是不确定如何测试我的主题失败。这可能是一个好主意,使用后备CDN而不是本地,因为两者都不太可能一起下来,并且仍然有可能被缓存。但我仍然不确定如何测试我的主题被加载。 –

+0

http://stackoverflow.com/questions/3794128/how-to-check-if-an-external-css-file-is-loaded-using-javascript – BentOnCoding

+0

该问题解决了如何检测css文件。 – BentOnCoding

相关问题