2012-07-01 27 views
5

我們通常會檢查jQuery是否從CDN加載,如果沒有,則回退到本地版本。檢查是否加載了html 5填充

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> 
<script>window.jQuery || document.write('<script src="js/libs/jquery-1.7.1.min.js"><\/script>')</script> 

我使用Twitter的引導,並加載從googlecode複製HTML 5墊片。

<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>

有什麼辦法,我可以回退到本地版本,如果不從googlecode

加載還是我做錯了什麼。我不應該檢查這個嗎?

回答

11
<script>window.html5 || document.write('<script src="js/libs/your-local-version.js"><\/script>')</script> 
+0

我只會使用本地版本,但您的回覆絕對是問題的答案。有用 ! – Jashwant

+2

請不要使用document.write ...推測解析器無法加載由它插入的腳本,您將不得不等待代碼執行,並將其插入的JS加載到它下面的其他DOM元素之前可以呈現見http://www.stevesouders.com/blog/2012/04/10/dont-docwrite-scripts/ –

4

我不會因爲jQuery而退縮(長時間的討論以及我不希望打開的蠕蟲),但這取決於你。

我認爲從googlecode加載html5.js會導致你更多的問題,但你應該在本地託管它。爲什麼?因爲你直接從SVN樹的樹幹中引用代碼。該代碼可以/會改變你,這會使你的工作進入一個未經測試的狀態。你可以參考Googlecode的特定版本......或者真的,只需自己託管它。

+0

我現在明白了您的所有擔憂。 +1 – Jashwant

1

當使用html5shim時,我會建議首先在本地加載它。在他們的網站上,他們最近改變了措辭,讓你下載文件,而不是從GitHub上鍊接它,它可以託管未經測試的代碼。

+0

感謝您的信息+1 – Jashwant

4

主機的毒刃本地,也有使用它從谷歌的許多問題(至少沒有在DNS查找等)以獲得更多看到的 - http://zoompf.com/blog/2012/05/html5shiv-and-serving-content-from-code-repositories

至於那jQuery的回調代碼我不會理會,用戶將認爲該頁面在回調觸發之前就已經破裂。

如果你讓我知道你的網頁的網址,我會演示。

+0

什麼是一個很好的信息。 +1。我必須標記弗拉基米爾的答案,因爲這正確回答了問題。但是,是的,我不打算使用谷歌的版本。 – Jashwant

+0

問題是弗拉基米爾的代碼包含了從性能角度來看不好的做法:-( –

+0

是的,我不打算使用弗拉基米爾的代碼,我用你的建議,現在,我甚至不會使用cdn jQuery。回答了我的問題 – Jashwant

相關問題