[RIA][程式語言] Welcome to RIA–2.Why should we use RIA?

相信大家都有過類似的經驗,在某些網站要進行資料輸入的過程中,會跳出一到多個新視窗,或是進行資料查詢、驗證的時候,網頁會進行刷新的動作,刷新之後,網頁又自動捲動到整頁的最頂部,更慘的是,資料送出之後,沒看到網頁有什麼反應,也沒辦法判斷是不是資料已經成功送出了……諸如以上的操作體驗,相信對大部份的人來說,是極為不方便的設計。

 

相信大家都有過類似的經驗,在某些網站要進行資料輸入的過程中,會跳出一到多個新視窗,或是進行資料查詢、驗證的時候,網頁會進行刷新的動作,刷新之後,網頁又自動捲動到整頁的最頂部,更慘的是,資料送出之後,沒看到網頁有什麼反應,也沒辦法判斷是不是資料已經成功送出了……諸如以上的操作體驗,相信對大部份的人來說,是極為不方便的設計。

為什麼會有上述的情況發生呢?原因很簡單,因為「網頁」最當初的使用情境,就是屬於一來一回的設計,而且資料的溝通是以「頁」為單位,所有的資料運算和資料檢查,都得送回伺服器處理,而伺服器處理完,又會將處理完的網頁整頁的送回給瀏覽器,因此動不動就進行頁面刷新,是再也正常不過的事(如下圖左),而之後由於JavaScript的加入,讓網頁得以在使用者端進行一些較為簡單的運算和資料驗證動作,但是還是沒辦法解決伺服器會把處理完的網頁整頁再送回給使用者端的情況,一直到AJAX的出現,讓資料的傳輸得以透過JavaScript,一次只將網頁中某部份的資料,以非同步的方式和伺服器進行資料交換,而收到伺服器送回的資料後,也是透過JavaScript將新的資料重新畫到頁面上,因此可以做到不用整頁重新讀取的效果(如下圖右)。

image_thumb[4]

看來AJAX的出現救了許多的工程師,也造福了許多的使用者,不過這樣一來JavaScript的地位在網路應用程式中就變得更加的重要,甚至不可或缺了,於是,我們常見的網路應用程式就會長成這樣:

image

或是

image

對於設計人員和開發人員來說,他們得為了這樣的特性,又再去加強對於JavaScript(或說是AJAX)的熟悉度,但是這個時候,往往麻煩就來了,因為JavaScript也算是一種程式語言,但是AJAX又偏偏跟UI的設計有關係,這時候就常常看到設計人員和開發人員互相踢皮球的戲碼上演(但往往都是開發人員得乖乖的吞下這顆球,誰叫你會寫程式!!!!)

為了避免不公平的情況發生,採用RIA解決方案,或許就是不錯的解決方式,例如把架構改為這樣:

image

從上圖我們應該可以看出來,JavaScript不見了,沒錯,他真的不見了!!不是說改成這樣就不能使用JavaScript,而是我們就相對的更不需要再依賴JavaScript就能做到所有AJAX能做到的事,而且更簡單、更方便,設計人員和開發人員也更容易進行分工。

這邊簡單的列舉一下使用Silverlight或是Flex技術的好處:

  • 所有流程、操作控制都能更Rich更Interactive
    • Wizard、拖拉、Double Click、熱鍵
    • 動畫、音效、影片
  • UI也進入OOP的世界
    • 將所有的Class還原成使用者看得懂的物件
    • 介面和程式更乾淨的分離
  • 非同步的溝通
    • 不用透過AJAX也能和伺服器進行非同步的溝通
    • 不用再進行整個頁面的刷新
  • 利用Client端電腦的資源,降低Server的負擔
    • 不需使用JavaScript也能讓使用者也有執行運算的能力,而且更強大
    • 更有效率的使用使用者端的顯示卡進行介面的繪製