有在使用CMS系統(例如:WordPress、Drupal、Joomla等)架站的網友可能都聽前輩說過一句話:盡量少用外掛會讓你的網站載入快很多,也就是說像我要讓我的網站有Lightbox的效果時,我可以手動去加入jQuery的程式碼,也可以直接安裝外掛,這兩種方式都可以達到同樣的效果,但對於網站載入的速度卻會造成蠻大的差別的
為何使用外掛會讓網站變慢?
為什麼說使用外掛會拖慢網站的速度呢? 同樣的功能憑什麼使用外掛會讓網站變慢,自己手動加到網站上就影響較小? 難道是傳說中懲罰懶人的機制!? 其實都不是。使用外掛會導致網站變慢的原因其實很簡單,因為大部分CMS系統的外掛都是採用Hook的機制去撰寫的,也就是說CMS系統本身會提供一系列API給開發者使用,可以把它看成是物件導向裡面的事件,當CMS系統發生某事時,可能要執行某些動作,例如:當發表一篇文章時,要把文章的網址傳送到我的信箱裡,則必須要使用一個發表新文章的API,然後指定當發表文章時會觸發「寄信」的函式,換句話說就是「當發新文章事件發生時」,要「寄信」
凡是在CMS裡開發外掛,幾乎都是透過這類方式設計的,也就是說當發生一件事情時,並非直接由外掛來工作,而是統一由系統來進行管理,而這就會導致外掛的效能變得比較低,因為多經過了CMS系統這道程序,而不是像手動寫入那樣直接發生
在舉一個例子:很多人都喜歡使用Google的分析服務,然後又不喜歡手動去修改佈景檔案,把分析用的程式碼加到佈景中,所以會去安裝一些外掛來幫你快速的安裝分析功能的程式碼,這種作法就會在無形中拖慢網站速度,因為CMS的管理,但如果手動加入到佈景檔案中,就不會有太大的影響
要如何才能讓網站速度加快?
要讓網站速度加快的方法很多,常見的就是啟動Gzip、用好一點的主機、圖片要壓縮.... 等等,但因為這篇文章是在講外掛的部份,所以我就針對外掛來做說明- 能夠不用外掛達到的功能就盡量不要用,例如Google分析、燈箱特效、推文按鈕等等
- 沒有使用到的外掛一定要移除掉,即使沒有啟動也會影響到網站的速度
示意圖▼▼

