擋掉 Google Plus,加快 Google Reader 速度...

Google Reader 這次改版另外一個為人詬病的問題是「變卡」,主要原因是 Google Plus

第一個想到的解決是利用 Adblock Plus,將 http://www.google.com/reader/* 以及 https://www.google.com/reader/* 連到 https://plusone.google.com/* 的連線需求都都擋下來。但看了 Adblock Plus 的文件,不知道要怎麼設定...

後來想到的解法是自己寫 Google Chrome Extension,主要是很久沒寫都忘光了,剛好找個實際會用到的功能來寫... 主要是用到 chrome.tabschrome.experimental.webRequest 兩組 API 組合。其中後面這組 API 必須用 about:flags 打開權限才能使用。

成品在這:「google-reader-faster」,由於用到 Google Chrome 的 Experimental API 所以無法上傳到 Web Store,所以暫時先用 dev mode 把 extension 讀進來用。之後要來再研究看看 Adblock Plus 是怎麼做到的...

把 Google Plus 擋掉後用鍵盤快速鍵操作順很多 XD

Google +1 按鈕的效率問題

在「Google +1 Button Performance Review」這篇中,Aaron Peters 對 Google +1 按鈕所提供的方法感到疑惑,因為官方所提供的方法效率其實並不好。

首先先拿出官方的 sample:

<!-- Place this tag in your head or just before your close body tag -->
<script type="text/javascript" src="http://apis.google.com/js/plusone.js"></script>

<!-- Place this tag where you want the +1 button to render -->
<g:plusone></g:plusone>

即使 Google 給了建議「Place this tag in your head or just before your close body tag」,但這仍然會延遲 onload 的時間。

另外一個更糟的是,目前 Google 的伺服器會把使用者從 http://apis.google.com/js/plusone.js 導到 https://apis.google.com/js/plusone.js,多一個重導又使得 onload 時間又更久了。接下來是噴飯的「Cache-Control: private, max-age=360」,這使得 proxy server 無法 cache,而且因為 cache 的時間過短而經常要向 server 要資料。

再來是這個 js 沒有 minified,造成 gzip 後仍有 628bytes 的差距。然後在這個 script 裡面還可以看到特地為 Blogger「減速」使用 sync loading (喔喔)。

從以上的情況,可以看出來 Google +1 這個產品符合了不少產品成功的要件... XD

Anyway,真正的重點在文章最後面,他有引用一段 async loading 的程式碼讓大家用,雖然不能解決所有問題,但至少可以讓 onload 事件儘快觸發... (這是其中一個很大的問題)