Comet : 超越 Ajax 的新技術?

Update (2006/11/5) : thegiive 兄也針對 Comet 也做了一番研究。 

Update(2007/4/6) : lazy Guy 提出了更深入的觀察跟看法。

Comet 這個名詞是由 Alex Russell (Dojo的開發者) 今年五月所提出,比較熟知的名稱有 HTTP_StreamingServer Push。讓 Client 瀏覽器與 Server 建立長時間的連線,因此Server可以想傳就傳資料給 Client,不需要 Client 先送 request,Server 才能送資料。 閱讀全文〈Comet : 超越 Ajax 的新技術?〉

UJS Rails Plugins : Unobtrusive Ajax for Rails

正是我夢幻想要的啊!! 看完 DOM Scripting之後,對 Unobtrusive Javascript (可以參考 Jeremy Keith’s Behavioural Separation 的介紹) 念之不忘,想說 Rails 要怎麼支援 unobtrusive 跟degrades gracefully 的特性呢? 因為我們看到 Rails 內建的 helper 都是寫在HTML裡成 onclick = ‘xxx’ ,如支援 Ajax 的 link_to_remote 就是用 href=’#’ onclick=’new Ajax.Request(…)’ 云云。

所以我想是不是要改寫 link_to_remote之類的,另外寫套 helper 來讓 Javascrit 不要與HTML混在一起。不過… 今天在 Ajaxian Unobtrusive Ajax for Rails by Dan Webb 上看到介紹,有個 UJS Rails Plugins,可以讓你用它的 helper 掛 javascript 到 event (用CSS-selector) 上,而不用跟 (X)HTML 混在一起,達到網頁 Behavioural 的分離。

話不多說,請看作者的 Presentation Slides,真是太令人興奮了,作者的野心不小,非常令人期待。對網頁標準愛好者來說,這 plugin 真是太棒了。就算你不是基本教義派信徒,看到投影片的例子,焉不心動?… :p

寫了一個簡單的 UJS demo,搭配 RJS 超讚~ 不過我覺得 UJS 有點多管閒事的地方是它預設修改 Rails 的 link_to , link_to_remote, form_remote_tag 等成 Unobtrusive 版本,把 onclick 通通移除了,當場讓我之前的RJS demo爛掉,好險code不用再改,只需補上 javascript_include_tag :unobtrusive 即可。

至於degrades gracefully,因為連結都還保留著 href,所以就算使用者 Javascript 關閉,還是可以連到東西,只是server端要檢查是不是 ajax request 來決定回應什麼格式。

Erlang and Yaws

Erlang 最早是由電信廠商 Ericsson 所發展出來的 funcaiotnal programming language,在1998年轉成open-source,最大的特色就是 concurrent 的能力。藉由語言層次對平行運算的支援,達到高度 reliability, scalability, availability的能力。Yaws 則是基於 Erlang 所開發的 Web server,根據這篇文章 利用 16 台 cluster server 所做的實驗,Yaws可以承受超過八萬個parallel session,Apache則在四千個就掛了。

這趟旅程是從這篇文章開始的,隨即逛了 Yariv’s Blog,裡面對 Erlang 大加讚揚,認為Erlang在Web領域淺力無窮,尤其隨著 Comet 對 server scalable 能力的要求,更可以展現它高度的性能。Yariv 甚至拿 Ruby on Rails來比較一番,說他雖然也愛 Ruby on Rails,但是更愛 Erlang…:p

基於好奇心我就在 FreeBSD 上裝了起來,試玩了一下,不過我對 functional language 實在是不熟(惟一的經驗是寫過一個scheme作業),而且我也沒有這麼多Server可以試驗Scalable的能力…:p 這趟旅程只好先點到為止了 。

其它參考文章

 

操作介面設計模式 Designing Interfaces

 

介面設計與 Usability 的好書,介紹94種設計模式,包括資訊架構、導覽、頁面配置、圖表、輸入表單、編輯器操作、外觀,每一章都會先來個概觀性解法,然後每個模式依序講解 這是什麼? 何時使用? 為何使用? 原理作法! 範例說明!,編排的非常有系統,內文也不會太艱澀難懂,像認知心理學那樣深奧(?),或是太雜太多的 Tips。舉的範例也很棒,涵蓋桌面軟體及Web。非常適合與UI相關的工作者閱讀,可以學到很多 Usability 的知識跟技巧,激發你的創意。

不過此書中文版編譯錯誤頗多,有耐心的話請勘誤吧(很累人就是了,害我花了2hr塗改)。

Rails RJS Templates 再探

如果看了上一篇,以為有了RJS就不用學不用寫 Javascript 跟 Prototype.js,那就錯了… :p

RJS 你可能會以為是 Ruby JavaScript,Ruby 要統一 JavaScript 了。不過其實是 Remote JavaScript 的意思,顧名思義它主要用於 Ajax Request 的遠端回應。不需要用 Ajax 的地方還是應該乖乖用 Javascript 來寫(你要透過RJS繞一圈來做也沒什麼辦不到啦~) 在rhtml中就寫好Javascript,除了直接寫  Javascript code 之外,也可以用 update_page 和 update_page_tag 來生成Javascript code(感謝contagious補充修正)。一來是效率時效考量,二來也讓RJS保持乾淨。所以還是要會 Javascript跟Prototype才能正確運用RJS的方便性。嗯,還在努力學習中… 真是太神妙了… Orz 

承上一篇的範例,最簡單的例子就是載入畫面,這玩意當然不需要再發 Ajax Request了。 閱讀全文〈Rails RJS Templates 再探〉

Microsoft IE7 正式發布

Update(2006/12/1): 繁體中文版出了。 

ie7

歷經20個月,發了5個bata及1個release candidate版本之後,終於到了正式發布了,IEBlog上 Bill 都來 congratulate 一下。IE7的CSS有重大改善,增加好用的 Tabs 功能、RSS Feeds 及搜尋框,以及種種安全性加強。

Internet Explorer 7: 下載

台灣微軟也做好下載頁面了,不過我點中文版還是連到英文去,多語系版本還要再等一陣子。相信在過不久微軟就會用自動更新來硬塞給你…. XDXD

網頁設計又要大攪動了,現在除了要檢查 IE6跟Firefox,IE7也要加進來考慮了。有很多網站用IE6可以看,但是IE7會有問題,像是蕃薯藤新聞,會發生選單疊到內文的現象。台灣企銀的網路銀行連登入都不行(為什麼銀行的HTML都寫的很爛?)。雖然會有一些陣痛跟麻煩,但是我覺得是很好的進展啊。

接下來是 Firefox 2.0 …