海內(nèi)網(wǎng)很是多的網(wǎng)站都利用免費(fèi)的 Google CDN 處事來(lái)加載某些 js、字體樣式庫(kù)以晉升網(wǎng)頁(yè)欣賞體驗(yàn),譬喻 jQuery、Google Fonts??墒墙癯?Google 的大大都網(wǎng)站在大陸無(wú)法正常會(huì)見(jiàn),因此這些自己是加速網(wǎng)頁(yè)載入的庫(kù)反而成為了阻塞網(wǎng)站加載的原因。這種環(huán)境海內(nèi)的網(wǎng)站并不多,可是海外的網(wǎng)站卻很是多地利用這些庫(kù)。一般地,當(dāng) Google CDN 庫(kù)稱為網(wǎng)頁(yè)加載的限制因素時(shí),欣賞器狀態(tài)條會(huì)顯示狀態(tài)為 “正在期待 ajax.googleapis.com 的響應(yīng)...” 或 “正在毗連...” 等字樣。
假如打開(kāi)節(jié)制臺(tái),能瞥見(jiàn) Google CDN 確實(shí)正在阻塞網(wǎng)頁(yè)加載。假如期待足夠長(zhǎng)的時(shí)間,欣賞器最終會(huì)放棄加載,并泛起一個(gè)殘破的網(wǎng)頁(yè),這并欠好。下面從網(wǎng)頁(yè)開(kāi)拓者、欣賞器用戶的角度給出一些辦理方案。
對(duì)付網(wǎng)頁(yè)開(kāi)拓者:選用其它 CDN 庫(kù)
網(wǎng)頁(yè)開(kāi)拓者必需思量到這個(gè)問(wèn)題,因此在設(shè)計(jì)網(wǎng)站時(shí)就應(yīng)該思量棄用 Google CDN 庫(kù)。假如訪者大多來(lái)自海內(nèi),可以思量利用百度 CDN、新浪 CDN 庫(kù),它們都包括了非經(jīng)常用的 JS 庫(kù)文件。假如有面向國(guó)際的訪客,則可以思量利用微軟的 ASP.NET CDN。
譬喻以下是利用微軟 CDN 加載 jQuery 的一個(gè)典型:
<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.2.min.js" type="text/javascript"></script>
假如要利用 Google Fonts,則可以利用 360 提供的署理 CDN。這樣一來(lái),即時(shí)要利用 Google Fonts 網(wǎng)頁(yè)字體,網(wǎng)頁(yè)的速度也不會(huì)受到滋擾和阻塞。
修改 hosts
對(duì)付用戶,我們無(wú)法直接令欣賞的網(wǎng)頁(yè)棄用其正在利用的 Google CDN,從而呈現(xiàn)無(wú)法加載的環(huán)境,那應(yīng)該怎么辦呢?辦理方案之一就是修改 hosts。通過(guò)修改 hosts,強(qiáng)迫 CDN 域名指向指定的 IP,,得以樂(lè)成從 Google 加載這些文件。
值的一提的是,有一部門(mén) Google CDN,譬喻 fonts.googleapis.com、fonts.gstatic.com,它們可以被理會(huì)到首都的 IP 地點(diǎn),因此假如在 DNS 理會(huì)失效的環(huán)境下,通過(guò) hosts 將這些域名直接指向首都的 IP 是最好、最快速的。
雖然,假如 Google 改變心意,首都的處事器拒絕提供這些域名的緩存處事的話,就沒(méi)有步伐了。至于為什么 Google 不索性把所有的 CDN 都理會(huì)到首都,也沒(méi)人清楚。
修改 hosts 并不必然是好要領(lǐng),因?yàn)樗俣却蟾艜?huì)較量遲鈍,另 hosts 大概失效。
利用 Chrome 擴(kuò)展主動(dòng)替換為海內(nèi) CDN
海內(nèi)的一些處事器通過(guò)鏡像或同步拷貝等一些要領(lǐng)能保存一份與 Google CDN 同樣的文件專供海內(nèi)用戶加載。我們可以利用一款名叫 Replace Google CDN 的 Chrome 擴(kuò)展插件,來(lái)主動(dòng)替換欣賞的網(wǎng)頁(yè)里的 Google CDN 為海內(nèi)的替代處事器。
這款插件作者為 @justjavac,Github 項(xiàng)目地點(diǎn)為github.com/justjavac/ReplaceGoogleCDN,擴(kuò)展地點(diǎn)為https://chrome.google.com/webstore/detail/replace-google-cdn/kpampjmfiopfpkkepbllemkibefkiice。雖然你大概需要先利用一些能力來(lái)打開(kāi)這個(gè)應(yīng)用商店才氣安裝。
擴(kuò)展插件支持替換 Google CDN 為中國(guó)科技大學(xué)提供的 CDN,支持ajax/fonts.googleapis.com、themes.googleusercontent.com 的替換,而且支持 HTTPS。在這里要感激他們。
安裝好這款插件后,欣賞任何帶有 Google CDN 的網(wǎng)頁(yè)時(shí)城市被跳轉(zhuǎn)到這個(gè)節(jié)點(diǎn),這樣就不會(huì)呈現(xiàn)阻塞的環(huán)境了。