2014年5月1日 星期四

為何部落格最好避免第三方外掛?(一)拖累網頁速度及其他不良影響

為何部落格最好避免第三方外掛?(一)拖累網頁速度及其他不良影響

Wayne Fu 0 A+

(Pic from: pixelportal.com.au)
自由度較低的部落格平台(痞客邦、Xuite),大部分的功能官方會提供;而自由度高的平台(Blogger、Wordpress),官方提供的功能有限,很多都得仰賴第三方小工具來實現。

然而,第三方工具就像傭兵一般,我們是否瞭解這些外來軍團、具備管理知識,甚或傭兵的素質不一、其中是否混有 SPY,每一點都是重要的考量。

保險的作法當然是只用正規軍,否則行軍速度越來越慢,甚至被木馬屠城,不知如何收尾就慘了。以下先說明所謂 "第三方" 的定義,再列出第三方工具的不良影響。



一、何謂第三方工具


Blogger 由於自由度高,網路上有許多高手貢獻程式分享,以廣義而言,這些 "非官方" 的程式都可算第三方工具。不過,WFU 認為把他們全部當成傭兵看待不太公平,其實很多都可算是自己人──

1. 存取後台資料的小工具

例如「最新回應」、「文章列表」、「相關文章」這些小工具,其實都只是存取同一個網域的資料,傳輸速度只在一瞬間,因此 WFU 認為這些工具可以當成 "隊友" 看待。

只是隊友也有分等級,這個主題我們後面再談。


2. Google 相關產品

因為 Blogger 是 Google 產品之一,而使用 Google 相關產品的小工具,基本上都還是存取 Google 伺服器,因此這類小工具 WFU 認為可以當成 "盟友" 看待。

例如使用 Google 試算表資料庫的「WYBOARD 部落格即時留言板」、使用 Google Anayltics 資料的「單篇文章計數器」、或是 Google Map 的相關工具,這些盟友在 http 的請求至少會比外部的伺服器來的快。


3. 沒有外部請求的程式

例如「下拉選單」、「浮動導覽列」、「回到頂端按鈕」這一類的工具,並沒有需要請求外部資料,充其量只能算 hack(調校) 而已,只要程式寫得好的話,不會是影響網頁速度的主要因素。


因此 WFU 的觀點是,除了以上三種程式,需要存取、連往 Google 以外伺服器的工具,對 Blogger 而言,才算是實質上的第三方工具。以下將逐項列出,使用這些第三方工具,需要面對的風險。



二、資料庫掌握在別人手裡


例如 Cbox、Disqus 等留言板,免費就能安裝與使用,功能也很強。然而其隱憂是,由於留言資料儲存在第三方的資料庫,那麼重視留言的站長,萬一突然間這些服務宣布收費怎麼辦?另外就是,有沒有辦法在各種情況下掌握這些資料?舉例來說:

  • 網站搬家時 → 網址變更能否移轉留言
  • 文章網址變動時 → 有時文章重新編輯、重新發佈後,網址會變更,留言資料可能不保
  • 資料庫出意外時 → 萬一第三方的資料庫損毀、或沒做好備份,留言可能消失


(pic from: markxii.com)

以 Blogger 而言,最保險還是使用官方提供的留言板,這些留言永遠能跟著文章綁在一起。



三、外部伺服器的穩定度


如果第三方服務的公司規模不夠大,伺服器不夠多、不夠穩定,短期間內有高流量時,可能就無法承載,進而影響這些第三方工具的執行。

例如 BloggerAds,常有使用者抱怨,在 BloggerAds 後面的程式都卡住了,詳細情形可參考這篇「部落格廣告(BloggerAds)卡住網頁載入的完整解決方案」。

另外一個例子為社交分享工具 AddThis,當其伺服器不穩時,那麼讀取 AddThis 的 js 程式碼就會很久,造成頁面載入時間被拖累,詳情可參考這篇「Slow AddThis: Reason and Solution」,這篇文章也提供了解決方法,只不過這個解法不是每個瀏覽器版本都能支援就是了。



四、服務停止營運


當資料存放在第三方服務時,其實每一天都是風險,因為下一個小時,這間公司會不會消失我們無從知悉,說不定這個小公司的主機、網址合約到期,或錢燒完了,或突然遭到流量攻擊,或承擔不起流量增加的費用,就瞬間關門了。




很早期有個國產的部落格文章計數器服務「MyHotPost」,當然作者很熱心、根本算是做公益,自己承擔伺服器的流量費用。很不幸的是 WFU 才裝了一陣子(大概不到一個月),就遇上作者宣布終止這項服務,這也導致所有數據全部消失。

原因 WFU 沒有深究,不過可以臆測的是,終究無法長期自行支撐主機的費用,除非多數使用者願意贊助。因此選擇第三方服務的重點之一,就是該服務有沒有辦法存活的跟 Google 一樣久,如果第六感認為很難的話,建議少用為妙。



五、收集使用者資料


許多第三方服務都是免費的,然而如果該公司沒有廣告收益的管道、或提供付費的版本,那麼他們圖的是什麼?當然就是蒐集使用者的操作習慣、興趣等等資料,這樣才有辦法轉換成收益。Google 使用 cookie 來分析使用者資訊大家都知道,而許多第三方服務則是使用超連結來動手腳。




以「相關文章」外掛的 LinkWithin 來舉例,一般而言,每個相關文章的連結應該像這樣:

  • http://www.wfublog.com/

不過對著該篇文章按右鍵、複製連結後,你會發現,連結竟然長的像這樣:

  • http://widget5.linkwithin.com/redirect?url=http%3A//www.wfublog.com/&rtype=&vars=%5B%22http%3A//www.wfublog.com/2014/04/wfu-blog-domain-anniversary.html%22%2C%201831077%2C%200%2C%20%22http%3A//www.wfublog.com/2014/04/wfu-blog-domain-anniversary.html%22%2C%20315839031%2C%204%2C%20315839043%5D&ts=1399980023871

這就是說 Linkwithin 會先把資料傳回他們伺服器後,再轉址到該篇相關文章。

Well,其實也不是很嚴重的事,看讀者自己如何評估了。以 WFU 而言,覺得一個超連結這麼做不是很乾脆罷了。



六、程式有問題


有問題的程式大致上有兩種狀況:

1. 沒有採非同步執行

這個主題太大,因此有機會另外討論,用舉例說明的方式比較快,例如前面提到的「BloggerAds」,其 js 程式就不是非同步執行,講白話就是一行一行依序執行(不能多行同時執行)。

那麼當 BloggerAds 的伺服器不穩的時候,這一行程式無法正常執行,就會導致永遠輪不到下一行的程式執行,也就形成頁面塞車的情況。

也因為有 BloggerAds 這樣的前車之鑑,WFU BLOG 開發的程式碼都是非同步執行,保證不會讓頁面塞住。


2. 程式有木馬

Ab? farh? 是很有名的 Blogger 工具發佈網站,數量龐大的使用者都曾安裝過這個網站的工具,例如文章列表、分頁工具等等。不過約半年前被 Google 偵測到其程式碼有惡意內容,事件始末請參考 +Bin Ye 的這篇「Google 警告 Ab?-farha? blogtoc JS 安全異常」。為何 WFU 要在某些字母使用問號 "?" 代替,有興趣可參考該篇文章的留言。

總之,很多使用者習慣在網路上隨意安裝、測試各種小工具,其實風險不小。要如何篩選網路上的程式,下一篇會談到這個主題。



七、小結


根據 +Mark X 的「網頁載入速度 黃金三秒」,加快網頁載入速度,是增加訪客再訪率的重要因素。因此網站有哪些小工具是非必要的,需要審慎評估。下一篇將提供一些評判的原則、及替代方案以供參考。


改善網頁效能相關文章:
0 0
如這篇文章對你有幫助,歡迎「分享」到 FB、「追蹤」粉絲團、「訂閱」最新文章
TOP