node.js 版的 YUICompressor...

看「Fantastic front-end performance Part 1 – Concatenate, Compress & Cache – A Node.JS Holiday Season, part 4」的時候發現 node.js 版的 YUICompressor 比起 Perl 版本更早之前就 porting 完成了:「UglifyCSS」,甚至是官方版本的「yuicompressor / ports / js / cssmin.js」也都遠早於 Perl 版本...

npm 裝 uglifycss 就可以用了...

jQuery 1.8.0

官方公佈 jQuery 1.8.0 了:「JQUERY 1.8 RELEASED」。

這個時間點 Google Libraries API 已經放上 1.8.0 了:HTTP 版的 http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js 與 HTTPS 版的 https://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js

靠著 Sizzle 翻修、拔掉一些 alias 與功能,以及 code cleanup,使得 jQuery 1.8.0 在 gzip 後比 1.7.2 小了一些。

在瀏覽器裡面的「Linux 模擬器」

QEMU 的作者 Fabrice Bellard 寫了一個 javascript-based 的 x86 emulator:「Javascript PC Emulator」,技術細節在「Javascript PC Emulator - Technical Notes」。

其中實做了 486-based CPU,沒有浮點運算能力,另外因為這是 for fun project,所以很多細節沒做 (Linux 開機沒用到的功能都沒做)。以「x86 instruction listings」這邊列出來的指令集,要做到 486 等級,大約 150 條上下?

真是感謝現在的瀏覽器把 javascript 做的這麼快...

jQuery 1.5.1 釋出

jQuery 的官方 blog 宣佈 1.5.1 正式出版:「jQuery 1.5.1 Released」,除了 bugfix 外,也宣佈要開 1.6 Roadmap Meeting 討論下一個版本要做的事情,預定在 irc.freenode.net 的 #jquery-meeting 上開,時間是 3/7 (時區是 EST)。

這次 Google CDN 上已經有 1.5.1 版,需要的人可以改過去了...

Protocol Preserve URI 的過濾

雖然知道 //host.domain/path 這種 Relative Protocol 用法 (而且也用很久了),不過最近在 irc.perl.org 上的 #plack 剛好有人提到,再加上最近剛好有人在探討安全性問題:「Bypassing "RequestPolicy" Using Protocol Relative URLs」,剛好可以拿出來再說一次。

簡單來說就是「以 / 開頭的 URI 並非一定是 same origin,不可以以此當作 same origin 的判斷」。因為「//ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.min.js」這種用法是正確的用法,表示保留 Protocol。

另外講些題外話,這個用法也還是有缺點,用在 IE 的 css 時會造成重複抓取 (到 IE9 都還是):「CSS files downloaded twice in Internet Explorer with protocol relative URLs」,script 或是 relative path 都不會,只有 css 會...

反過來說,因為 js 的部份大家都沒問題,所以當使用 Google 提供的 jQuery 時,「永遠」都應該使用「//ajax.googleapis.com/...」,因為 Google Libraries API 是同時支援 HTTP 與 HTTPS 的。

jQuery 1.5.1 RC 1

jQuery 1.5.0 出來以後 (2011/1/31) 沒幾天又準備要出 1.5.1 了,剛剛在官方的公告「jQuery 1.5.1 RC 1 Released」上公佈了 1.5.1 RC 1 的連結 (讓人測試),以及大量的 bugfix 資訊...

昨天看了幾個報社的網站,發現不少網站都用 jQuery:(看首頁的部份)

而「自由時報電子報」首頁沒有看到 jQuery...

Head JS:非同步讀取 script 並且依照相依性執行

ihower 的 Twitter 上看到的,看起來相當好用的東西:「Head JS :: The only script in your HEAD」,官方網站的程式碼就相當容易懂了,這邊就不再列出範例了...

由於以往要作到類似效果並不太容易 (okay,我知道某 library 可以做,但... *消音*),Head JS 的出現以及好用的程度 (容易上手),可以使得網站大幅提昇頁面讀取速度。

手上舊的 project 可能就放著吧,但新的 project 應該會用...

UglifyJS - 更強大的 JS Compressor

John ResigTwitter 上提到 UglifyJS 還可以對 .min.js 版本再壓 700bytes

It seems like the UglifyJS minifier shaves about 700B off the gzipped size of jQuery. Will explore more, already impressed.

號稱比 YUI Compressor 更強大,比 Google Closure Compiler 更穩定...

node.js 寫的,以 JS 壓縮 JS 的程式...

evercookie - 想辦法在瀏覽器留下紀錄...

evercookie 是一套想辦法在瀏覽器上留下可供紀錄的痕跡的 javscript library,支援非常多方法,想盡辦法產生類似 HTTP cookie 的效果...

從標準的 HTTP cookie、Flash 的 Local Shared Object,以及 HTML5 規格中的各類 Storage 外,另外還想實做 Web History 與 ETags!這真的不知道該說什麼了... XD

HTTP cookie 可以用內建設定保護,而 FlashblockBetterPrivacy 可以擋 Flash 的 LSO 部份,至於其他的還要再找看看有沒有解...