多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > web前端 > htmlcss > jQuery Alternate Source in HTML

jQuery Alternate Source in HTML

來源:程序員人生   發布時間:2015-06-18 09:47:48 閱讀次數:4237次

For better site performance, we may use popular libraries from CDN like Google Hosted Libraries.

<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>

That's good. But sometimes, a storm may arise from a clear sky, the script may not be accessible. To save against a rainy day, an alternative source should be ready.

<script name="jQuery" src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js" data-alt-src="http://code.jquery.com/jquery⑵.1.3.min.js"></script>

and with the following snippet, got it.

<script title="script-alt 1.0"> if(!window.jQuery){ document.write('<script name="jQueryAlt" src="http://www.vxbq.cn/uploadfile/cj/20150502/'+document.scripts.namedItem("jQuery").getAttribute("data-alt-src")+'"><'+'/script>'); } </script>

Note that if you want to use jQuery API directly, use document.write() rather than appendChild call like document.body.appendChild() to add a script element to document. for the appendChild call, its related loading is asynchronous in Chrome.

To replace the error script element with alternative script element when jQuery loading failed, this works:

<script title="script-alt 1.1"> (function(){ if(!window.jQuery){ var script=document.scripts.namedItem("jQuery"); document.write('<script name="jQueryAlt" src="http://www.vxbq.cn/uploadfile/cj/20150502/'+script.getAttribute("data-alt-src")+'"><'+'/script>'); script.parentElement.replaceChild(document.scripts.namedItem("jQueryAlt"),script); } }()); </script>

To let the alternative script element not be tagged with "jQueryAlt", one solution:

<script title="script-alt 1.2"> (function(){ if(!window.jQuery){ var script=document.scripts.namedItem("jQuery"); script.src=script.getAttribute("data-alt-src"); document.write(script.outerHTML); var lastItem=function(){return this.item(this.length-1);}; script.parentElement.replaceChild(lastItem.call(document.scripts),script); } }()); </script>

To make it modular, we got

<script title="script-alt 1.3"> (function(){ function lastItem(){ return this.item(this.length-1); } function setSrc(src){ this.src=src; if(document.readyState=="complete"){this.outerHTML=this.outerHTML;return;} document.write(script.outerHTML); this.parentElement.replaceChild(lastItem.call(document.scripts),script); } if(!window.jQuery){ var script=document.scripts.namedItem("jQuery"); setSrc.call(script,script.getAttribute("data-alt-src")); } }()); </script>

If you have your own host with SSL support, and its resources are located at the the same path as these in Google Hosted Libraries, then the only difference between your own host and Google Hosted Libraries is host. In these circumstances, you just need to specify an alternative source host.

<script name="jQuery" src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js" data-alt-host="ajax.myapis.com"></script>

and with the following script, alternative source may work.

<script title="script-alt 2.0"> (function(){ function DocumentBasedURL(url){ var a=document.createElement("a"); a.href=url; return a; } function lastItem(){ return this.item(this.length-1); } function setSrc(src){ this.src=src; if(document.readyState=="complete"){this.outerHTML=this.outerHTML;return;} document.write(script.outerHTML); this.parentElement.replaceChild(lastItem.call(document.scripts),script); } if(!window.jQuery){ var script=document.scripts.namedItem("jQuery"); var url=new DocumentBasedURL(script.src); url.host=script.getAttribute("data-alt-host"); setSrc.call(script,url.href); } }()); </script>

Finally, jQuery API can be called to do what you want.

<script> jQuery(function($){ console.log("jQuery "+$.fn.jquery+" loaded"); }); </script>

本文來自http://blog.csdn.net/flashdelover/article/details/45421109
未經允許,不準轉載

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 久久最新视频 | 92看片淫黄大片看国产片 | 羞羞动漫在线免费观看 | 三级在线观看视频 | 视频在线观看视频 | 日韩永久在线观看免费视频 | 欧美激情精品久久久久久久 | 亚洲天堂成人 | 国产美女亚洲精品久久久综合91 | 一级毛片毛片毛片毛毛片 | 最近免费中文字幕大全免费 | 欧美性暴力变态xxxx | 久久91精品国产一区二区 | 男人边吃奶边玩下面舒服 | 毛片黄 | 最新亚洲精品国自产在线观看 | 中文字幕伦伦精品 | 日本香蕉一区二区在线观看 | yellow中文字幕久久网 | 在线人成精品免费视频 | 日韩成人国产精品视频 | 久久入 | 国产欧美一区二区三区小说 | 99热成人精品国产免国语的 | 2015日韩永久免费视频播放 | 中文字幕在线观看国产 | 自拍欧美日韩 | 欧美成人黑人xx视频免费观看 | 欧美精品久久久久久久小说 | 日本wwxx护士 | 国产精品高清一区二区 | 亚洲视频在线一区 | www精品久久 | 婷婷夜夜躁天天躁人人躁 | 亚洲精品高清国产麻豆专区 | 日韩欧美在线观看 | 空姐一级毛片 | 中文字幕国产视频 | 亚洲精品视频一区二区 | 亚洲成在人线久久综合 | 久久精品综合一区二区三区 |