使用CDN(內容分發網絡)的主要好處是,由於其用途廣泛,機會是你的訪問者可能已經擁有你想在他們的瀏覽器加載腳本的緩存副本。這將完全否定任何加載時間。如果他們沒有緩存副本,那麼CDN可能會以比您的服務器更快的速度將其傳遞給他們。我認爲最好在可能的情況下使用CDN。
即使考慮到這一點,CDN也不是絕對可靠的,並且您不希望您的網站100%依賴別人的服務器。我建議在本地創建一個腳本副本,並儘可能將其用作備份。 jQuery的,這是很簡單的:如果他們加載
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript">
if (typeof jQuery == 'undefined') {
document.write(unescape("%3Cscript src='/Scripts/jquery-1.7.1.min.js' type='text/javascript'%3E%3C/script%3E"));
}
</script>
其他庫可以在他們的方法進行測試有所不同,但思路是一樣的。
同樣值得注意的是,如果您是從Google的CDN加載ALWAYS,請使用完整版本號,否則腳本將不會被緩存。
也就是說,如果您的請求的URL看起來像這樣:
"http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js" // highest 1.4 version (1.4.4)
"http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js" // latest version (1.7.1)
Expires頭設置先前爲當前日期,因此緩存的效果無效。
More info on this here
CDN最大的缺點是它可能沒有'fonctions.js'。 –
對不起,我的意思是jquery.js,是一個錯誤! – remyremy
有趣的是,有多少答案從他們的答案中省略了地理位置(只有一個答案談論它,+1 @ eureka)。由於CDN上的數據遍佈世界各地的數據中心,因此使用CDN可以極大地減少數據傳輸的物理距離。 – Jasper