針對利用 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,在頁面中做相關的提示說明,告知用戶訪問緩慢的備選方案。
前面提到的幾點,都是從技術層面,這點的話,則是從運營層面去考慮的。
如圖所示,在新的網站描述文案中,增加了一段說明:如果打開緩慢或者無法載入,請訪問簡潔版 http://so.byr.wiki/
提供 Plan B,以儘可能的減少用戶的流失,給用戶留下好的印象。因為簡潔版的源碼放在國內的伺服器里,所以用戶訪問的速度基本是快很多的。
6,提供一個過渡頁面。
頁面載入時不先訪問首頁文件,而是過渡頁面,頁面中進行相關提示,告知用戶如果無法打開頁面或者載入緩慢,點擊簡潔版的鏈接進行訪問,或者等候幾秒鐘,自動調整到簡潔版的頁面。這個方案目前僅在構想中,暫無實施。
其他疑問
1,為什麼不直接把源碼放在國內,這樣用戶訪問的速度不就更快了嗎?
可能其它域名合適,但 Wiki 域名目前不支持備案的,所以你懂的。
最後
技術層面和運營層面都相配合是比較好的。
以前的時候,並沒有覺得運營一個網站很難,或者說需要考慮這麼多。現在越來越明白,網站到後期,隨著訪問量、用戶量等的增多,對技術的要求難度越高,需要考慮的因素也較多,各種可能的不可控因素都將導致網站異常崩潰,在硬體和軟體層面都多需要有戰略眼光才行。
時間匆忙,暫時寫到這裡,晚上再補充更新。
推薦閱讀:
※我用一部手機和三腳架 拍了一組北郵 360° 全景照
※北郵人導航 V3.0 來襲 全新改版 為你而來
※嘴上說不 選擇卻很誠實 這個投票結果有點意外
※如何評價北京郵電大學校長喬建永?
※在北郵學工業設計是一種怎樣的體驗?