8/14/2007

pixnet & ajax




那天因為有一點需求,所以try了一下pixnet的系統,前台我到沒太注意
後台的部分中,pixnet的後台系統中大量使用了ajax的技術
雖然我仍碰上了些許問題(手賤吧)但其完成度已令我滿意
由此,我想起了一件粉久想寫的事

====2006 3Q的思維=========================================

這些東西是06年3Q想的,這陣子沒有在看這方面的進展,但我猜大概半斤八兩
為了避免真的有人做出來了,在此先打點預防針

我不知道ajax的定義到底是什麼,但就我的想法中,所以泛使用XMLHTTP的技術都可歸類為ajax
ajax這個名詞底是什麼時候出來的我不太清楚,但XMLHTTP的技術在IE5的時候就存在了
這陣子火紅的原因可能是ajax似乎可以改變web系統的使用經驗,讓web系統更近似於一般的winform系統
其實這件事沒什麼不好,但我想談的是限制。

ajax最大的優點是可以在ui之後偷偷與server溝通,但這個偷偷在目前同時也變成缺點
最大的問題在於不容易reliable,不容易保証資訊傳送成功
一般情況下,因為ajax的輔助設計工具仍不足,要完成ajax的功能已經很辛苦了
那有什麼心情來故error handle? 出錯的時候不要當掉就很有良心了
由此引申出目前ajax的各項功能無法在商用程式中大量推廣的原罪
在商用程式中,速度、UI固然也重要,但穩定才是最關鍵的因素
ajax程式常犯的毛病是︰
它有執行嗎?
它執行完了嗎?
它還活著嗎?
在商用系統中「不確定」絕對是致命商
比如說,在網銀轉帳時,按下button,若那個畫面停了一分鐘不理你,你擔不擔心?
相較於重新換頁慢慢跑,我寧願選擇後者
所以ajax目前還是處於玩玩小包戲的階投,上不了大台面
不動了,壞了,重來就是了

由上,可以發現目前ajax的瓶頸在於client上,ajax在server side已有相當多的工具可以協助開發
開發的難度也已降為一般程式的範圍
但在client部分,仍需要在html, javascript, server side溝通三方面花費大量心力
而且尚未考慮前面提到reliable

ajax接下來的發展,應該要focus在下列幾處
1.大幅度減化client ajax開發的困難度
2.在1的基礎上仍需要留有絕對的彈性
3.需要提供reliable的機制,不是單純的try & catch
4.想達成上述的內容,應該在client端會產生一個framework來提供類似的服務
5.control未來俱會俱備ajax的能力,並建立在上述framework上
6.這個framework最後可能會內建在broswer中

我不太清楚目前MS的ASP.NET AJAX(之前的Atlas)做到什麼水準
不過從它的架構圖中可以看出MS有想往這個方向走
除上上述的優點外,這樣的作法可以綁架構(在變成公開標準之前)
畢竟MS有broswer又有server,只要自己搞定,好用。在IE還有相當的市占率之前何樂而不為。
商用的世界中,只有成本、好用。誰管你是不是開源碼,是不是正義的一方(商場上有正義嗎?狗屎)。

====回到現實=========================================

pixnet我最不滿意的是UI的部分,後台的UI似乎美化的令人不便使用
我第一次使用時,有多項功能是scan整個page後才發現button在那的
同志仍需努力呀,除了工程上的追求,還需要注意使用上美學
你的客戶是一般人

沒有留言: