AJAX 開發的兩種不同的方法(轉)
AJAX 開發的兩種不同的方法(轉)[@more@] 最近幾年Ajax應用程式開發出現了兩種截然不同的方法,每一種方法都對以前的結構模型進行擴充套件。由於兩種方法性質看起來是不同的,所以在實際應用程式的開發中應選擇其中一種。
當我們第一次聽到Ajax這個術語的時候,我們的第一反應可能就是其較高的Web頁面互動性。至少在JavaScript中的Web應用程式部分必要的程式碼提供互動性,雖然在Ajax應用程式意義方面都有一致的意見,但對於開發者如何與JavaScript進行互動或者如何在客戶端與伺服器之間分配顯示邏輯有一些分歧。
最近幾個月,在Artima中報導了幾個Java中心胖客戶端框架,目的在於完全的隱藏開發者與JavaScript進行互動。這些框架將JavaScript整合到了JSF元件中,從而作為一個工具來處理JavaScript,其中的細節對開發者來說是隱藏的。利用JSF伺服器端表現模型的優勢,基於Ajax的JSF在客戶端呈現出元件的狀態。
相反,Ajax在個別的客戶端元件工具包中有優勢,像Dojo或者 Prototype不僅將JavaScript呈現給使用者,而且對開發者來說開發頁面型別的應用程式更加容易。例如Dojo工具包提供許多API,這些API模擬J2SE API的重要部分,像收集和驗證器。另外UI工具,這樣的應用程式將不僅起顯示邏輯的作用,甚至一些在客戶端上業務邏輯,這些業務邏輯將會使用JavaScript來進行編碼。與服務端進行互動將會被限制在這樣的情況,即客戶端應用程式必須與外部的資源進行互動,例如,提取資料到客戶端或者儲存使用者的變化到資料中去。
因為基於Ajax的JSF方法執行在伺服器端的展現層並且將Ajax的特性融進到元件中去,這看起來像瘦客戶端的一個擴充套件,並且是傳統的Web應用程式的直接派生,這種方法的細微的共同點是Sun Ray瘦客戶端裝置,這種瘦客戶端裝置在伺服器端顯示桌面圖片,客戶端處理至多一個專門的顯示。第二種方法是一個客戶端-伺服器的擴充套件,以至於在客戶端和伺服器之間顯示應用程式的邏輯。在Ajax中,客戶端是一個可程式設計的Web瀏覽器。
這兩種犯法都是建立在良好的實踐基礎上的,在應用程式開發中是不同的體系,瘦客戶端涉及到在瀏覽器中JavaScript執行的不相容性,他們很少涉及到是否瘦客戶端模型是首選的即使所有的瀏覽器能夠很好的顯示JavaScript.
然而,JavaScript在開發邏輯方面仍然是比較困難的,在一個新的版本, EcmaScript 4,提供了一個完全的物件導向的語言,因為它是相當標準的,瀏覽器執行將還算是相容。另外客戶端類庫也已經掩飾了瀏覽器的大部分不相容性。
客戶端支持者認為他們的方法能夠更好的使用本地計算機資源,這樣也導致在應用程式中能取代傳統的桌面應用程式。即使沒有一個持久的網路連線。
有經驗的認為每一個方法都有其利弊,如果你開發一個全新的胖客戶端應用程式,就不得不選擇或者是瘦客戶端或者是客戶端-伺服器模型。
當我們第一次聽到Ajax這個術語的時候,我們的第一反應可能就是其較高的Web頁面互動性。至少在JavaScript中的Web應用程式部分必要的程式碼提供互動性,雖然在Ajax應用程式意義方面都有一致的意見,但對於開發者如何與JavaScript進行互動或者如何在客戶端與伺服器之間分配顯示邏輯有一些分歧。
最近幾個月,在Artima中報導了幾個Java中心胖客戶端框架,目的在於完全的隱藏開發者與JavaScript進行互動。這些框架將JavaScript整合到了JSF元件中,從而作為一個工具來處理JavaScript,其中的細節對開發者來說是隱藏的。利用JSF伺服器端表現模型的優勢,基於Ajax的JSF在客戶端呈現出元件的狀態。
相反,Ajax在個別的客戶端元件工具包中有優勢,像Dojo或者 Prototype不僅將JavaScript呈現給使用者,而且對開發者來說開發頁面型別的應用程式更加容易。例如Dojo工具包提供許多API,這些API模擬J2SE API的重要部分,像收集和驗證器。另外UI工具,這樣的應用程式將不僅起顯示邏輯的作用,甚至一些在客戶端上業務邏輯,這些業務邏輯將會使用JavaScript來進行編碼。與服務端進行互動將會被限制在這樣的情況,即客戶端應用程式必須與外部的資源進行互動,例如,提取資料到客戶端或者儲存使用者的變化到資料中去。
因為基於Ajax的JSF方法執行在伺服器端的展現層並且將Ajax的特性融進到元件中去,這看起來像瘦客戶端的一個擴充套件,並且是傳統的Web應用程式的直接派生,這種方法的細微的共同點是Sun Ray瘦客戶端裝置,這種瘦客戶端裝置在伺服器端顯示桌面圖片,客戶端處理至多一個專門的顯示。第二種方法是一個客戶端-伺服器的擴充套件,以至於在客戶端和伺服器之間顯示應用程式的邏輯。在Ajax中,客戶端是一個可程式設計的Web瀏覽器。
這兩種犯法都是建立在良好的實踐基礎上的,在應用程式開發中是不同的體系,瘦客戶端涉及到在瀏覽器中JavaScript執行的不相容性,他們很少涉及到是否瘦客戶端模型是首選的即使所有的瀏覽器能夠很好的顯示JavaScript.
然而,JavaScript在開發邏輯方面仍然是比較困難的,在一個新的版本, EcmaScript 4,提供了一個完全的物件導向的語言,因為它是相當標準的,瀏覽器執行將還算是相容。另外客戶端類庫也已經掩飾了瀏覽器的大部分不相容性。
客戶端支持者認為他們的方法能夠更好的使用本地計算機資源,這樣也導致在應用程式中能取代傳統的桌面應用程式。即使沒有一個持久的網路連線。
有經驗的認為每一個方法都有其利弊,如果你開發一個全新的胖客戶端應用程式,就不得不選擇或者是瘦客戶端或者是客戶端-伺服器模型。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617542/viewspace-960058/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- vue 跳轉的兩種方法Vue
- Python中新增兩個數字的6種不同方法Python
- Spark SQL中列轉行(UNPIVOT)的兩種方法SparkSQL
- iOS開發之tableView左滑刪除的兩種方法iOSView
- python 程式池的兩種不同實現Python
- heic轉換格式的兩種方法:你get到了嗎
- Java中將Excel轉換為JSON的兩種方法JavaExcelJSON
- 亂序的兩種方法
- 前端開發的ajax前端
- Linux埠轉發的幾種常用方法Linux
- Python進行開發的兩種方式Python
- 【演算法題】反轉連結串列的兩種方法演算法
- 抖音和微博:兩種不同的@人方案
- 解決ajax跨域問題的多種方法跨域
- 向伺服器傳送請求的四種方法Ajax,Fetch,Axios,JQurey中的($.ajax)伺服器iOS
- 兩種動態建立表格的方法
- python之建立類的兩種方法Python
- 糅合兩種開發模式的快速開發平臺解決方案模式
- Python實現"數字轉換為十六進位制"的兩種方法
- 用兩種方法把JSON資料格式轉換為Python的類物件JSONPython物件
- 事件溯源模式:分離事件的發生和捕獲兩種不同時間 - verraes事件模式
- React元件方法的兩種定義方式React元件
- python生成requirements.txt的兩種方法PythonUIREM
- MySQL建立資料庫的兩種方法MySql資料庫
- python中合併表格的兩種方法Python
- absolute定位css元素居中的兩種方法CSS
- Python中字典dict的11種不同操作方法Python
- jQ中的Ajax方法
- 修改資料檔案的位置的兩種方法
- iOS 開發中 runtime 常用的幾種方法iOS
- 不同層級的Android開發者的不同行為Android
- 轉發 spring 過濾靜態資源的2種方法Spring
- 頁面跳轉的幾種方法
- 非同步系統的兩種測試方法非同步
- 交換兩個資料的三種方法
- WebGL場景的兩種地面構造方法Web構造方法
- 建立連結串列兩種方法的區別
- PostgreSQL建立自增主鍵的兩種方法SQL
- 遍歷物件鍵值對的兩種方法物件