
為效能優化日誌(Performance Calendar)撰寫這篇文章時,我正在北京的 Velocity
China。既然這是我第二次到北京,我有更好的準備,更能夠應付身處「萬里防火牆」
(Great Firewall)之後所帶來的挑戰了。我知道我無法存取熱門的美國網站,像是
Google、Facebook 或是 Twitter,但隨著我依照習慣,開始瀏覽時,我很驚訝的發現,有
非常多的其他網站都被擋掉了。
Business Insider
過不了多久,我就發現問題是所謂的 frontend SPOF(http://www.stevesouders.com/
blog/2010/06/01/frontend-spof/),也就是某個前端資源(frontend resource,例如指令稿、
樣式表或前端檔案)使得一個頁面無法使用。某些頁面會變得完全空白,例如 Business
Insider(http://www.businessinsider.com/,圖 8-1)。
Firebug 的 Net Panel 顯示,
anywhere.js
的下載花了很多時間,因為它來自
platform.
twitter.com
,而這會被防火牆阻擋。知道是那個指令稿(scripts)阻斷了所有後續 DOM
元素的描繪(rendering)之後,我們提出了一個假設,指出
anywhere.js
是在 HEAD
中,以阻斷形式(blocking mode)被載入的。查看一下 HTML 原始碼