无论如何检查客户端是否从CDN加载jQuery?我的意思是要有这样的代码:
if (jQuery.isLoadedFromCDN)
//DoNothing
else
//load from internal resource
请注意,我不想检查jQuery是否已加载,但特别是如果它是从CDN加载的。
上下文是我有一个使用jQuery的内部局域网web应用程序,从局域网加载jQuery肯定更快但如果它之前已经从CDN下载(可能就是这种情况)那么我只是想使用它否则我想从我们的内部资源而不是cdn获取它。带宽节省绝对不是很大,但我更想知道这是否在技术上可行。
答案 0 :(得分:3)
我猜你正在检查是否从Google Libraries API加载了jQuery?
您的浏览器将缓存jQuery,无论是来自CDN还是来自您的LAN。如果它已经从之前从CDN中检索到的缓存中,它的加载速度将快于LAN。如果以前访问您网站或使用相同CDN的其他网站尚未在您的缓存中,则只需加载一次:后续访问将从缓存中加载。
在CDN和LAN之间拆分jQuery的URL只会导致两个副本被缓存。让浏览器缓存执行它的目的。 :)
答案 1 :(得分:1)
这应该这样做:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.js"></script>
<script>!window.jQuery && document.write(unescape('%3Cscript src="js/libs/jquery-1.4.4.js"%3E%3C/script%3E'))</script>
您需要调整后备路径,该路径应位于您的域中。
答案 2 :(得分:0)