針對利用 Github 做靜態網站的訪問速度優化思考

前天網上更新的專欄里,有用戶留言反映網站載入速度慢:

當然這早已經不是第一次有人提到了,我自己在網站搭建上線之初就知道,這個訪問速度的問題可能會長期存在。

(基礎背景:文科生一枚,對技術感興趣,但並不深入,所以不成熟之處,還請幫忙指出,以及提出其它更好的建議或者解決辦法)

基礎案例信息

網址:北郵人導航 :http://byr.wiki

Github 項目地址:byrwiki/byrwiki.github.io

案例說明:

  • 因為做這個頁面的初衷是開源,方便其它人進行優化迭代,同時也算是把 Github 當做免費的託管站點,而且也還能充分利用其相關功能,如 Wiki、Commit 等。

  • 但項目上線之後,發現自己訪問時,也經常會受限於網路環境和寬頻運營商。對於老用戶而言,第一次打開之後,會有緩存,之後再訪問可能會快些;但對於新訪客而言,較長的載入速度無形中就讓他們失去了耐心,以及對頁面的興趣,基本上就可以代表流失了。
  • 對於一個導航網站而言,或者說入口頁面,訪問速度真的能夠決定很多。

存在問題

基本上用 Github 搭建站點的所有國內用戶,基本上都會有載入速度緩慢且不定期異常的問題。

1,Github 的伺服器是在國外;

2,曾經 Github 被和諧過一段時間,但即使後來恢復了,總的訪問是較慢的;

3,用戶所在的寬頻運營商不同,在國內不同地區的訪問速度也存在較大差異;

嘗試過的改進:

那麼問題來了,既想要繼續利用 Github 的相關特色服務,又想儘可能的提升訪問速度,該怎麼辦呢?

1,關於網上提到的修改本地 Host 文件方案。

不適用於大多數人,如果是自己平常要用 GitHub ,修改之後確實有效果,但多數訪問網站的用戶,不懂這些,也不想懂這些,他們只想訪問得更快點。

2,針對訪客的 IP 自動判斷其是國內、還是國外用戶,然後分別設置訪問的路徑(國內則是鏡像、國外則是 Github)。

之前有過這樣的想法,後來在知乎上扒了下,發現較難實現。(部分內容稍後補充)

3,利用 CDN 加速。

測試效果失敗,利用知乎某用戶回答里提供的方案,實踐之後發現效果並無明顯改善。

4,修改頁面需要載入的本地元素路徑,改為訪問國內伺服器資源,包括樣式文件。

這個是目前網站真在使用的方案,準確的說,是昨晚剛這樣做的。把網站的最新源碼同步上傳了一份到阿里雲的伺服器上,然後再替換相應的本地資源路徑,以提升部分響應速度,目前來看打開速度還不明顯,需要觀察一段時間。

5,在頁面中做相關的提示說明,告知用戶訪問緩慢的備選方案。

前面提到的幾點,都是從技術層面,這點的話,則是從運營層面去考慮的。

如圖所示,在新的網站描述文案中,增加了一段說明:

如果打開緩慢或者無法載入,請訪問簡潔版 so.byr.wiki/

提供 Plan B,以儘可能的減少用戶的流失,給用戶留下好的印象。因為簡潔版的源碼放在國內的伺服器里,所以用戶訪問的速度基本是快很多的。

6,提供一個過渡頁面。

頁面載入時不先訪問首頁文件,而是過渡頁面,頁面中進行相關提示,告知用戶如果無法打開頁面或者載入緩慢,點擊簡潔版的鏈接進行訪問,或者等候幾秒鐘,自動調整到簡潔版的頁面。這個方案目前僅在構想中,暫無實施。

其他疑問

1,為什麼不直接把源碼放在國內,這樣用戶訪問的速度不就更快了嗎?

可能其它域名合適,但 Wiki 域名目前不支持備案的,所以你懂的。

最後

技術層面和運營層面都相配合是比較好的。

以前的時候,並沒有覺得運營一個網站很難,或者說需要考慮這麼多。現在越來越明白,網站到後期,隨著訪問量、用戶量等的增多,對技術的要求難度越高,需要考慮的因素也較多,各種可能的不可控因素都將導致網站異常崩潰,在硬體和軟體層面都多需要有戰略眼光才行。

時間匆忙,暫時寫到這裡,晚上再補充更新。


推薦閱讀:

我用一部手機和三腳架 拍了一組北郵 360° 全景照
北郵人導航 V3.0 來襲 全新改版 為你而來
嘴上說不 選擇卻很誠實 這個投票結果有點意外
如何評價北京郵電大學校長喬建永?
在北郵學工業設計是一種怎樣的體驗?

TAG:网站 | 互联网 | 北京邮电大学 |