分類
JavaScript Programming

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 才能送資料。

分類
JavaScript Programming Rails

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 來決定回應什麼格式。

分類
JavaScript Programming Rails

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了。

分類
Books JavaScript Programming Rails

Rails RJS Templates 初體驗

RJS templates 是 Rails 1.1 中的一種新 template,它的開發者 Sam Stephenson 也是 Prototype.js 的作者。不像一般 template 產生 HTML 或 XML,RJS templates 產生 Javascript (based on prototype) code 傳給瀏覽器執行,你可以在 template 中一次修改頁面多個地方,而所有 template 語法皆是用 Ruby 來寫。

要學RJS template,目前最好的文件應該就是這份 Cody Fauser 所寫的 RJS Templates for Rails 了,直接線上買PDF版(也只有PDF版),而且作者會更新,我手上的是 9/26。另外 slash7 提供了一份漂亮圖例 RJS Demystified With Pretty Colors!。RubyInside 則有整理了一份 16 RJS Resources and Tutorials for Rails Programmers

以下是一個簡單的Ajax範例,需要寫的程式碼很少,而且重點是不需要寫 JavaScript。

分類
JavaScript Programming Web Design

Prototype 簡介

Prototype 似乎是目前最紅 javascript framework,作者善用了Javascript物件導向的特性,增強了 Javascript 的功能與開發便利性。在實際看過之後,發現它並不是一套包裝太多的架構(像是動畫特效的東西就不在裡面),也因此也有一些 framework 如 Script.aculo.us 是以 Prototype 為基礎來開發的。當然,還有 Ruby on Rails 也用 prototype 來達成 Ajax 功能。

參考資源

它大概包含了哪些東西呢? 例如有: 

分類
JavaScript Web Design WWW

Ajaxian.com 的 2006 Ajax 調查報告

Ajaxian.com 調查了875位開發者(允許重複選)。第一名的 javascript framework 是 Prototype,第二名更加確認 prototype 的地位,是 Script.aculo.us (基於prototype的framework)。