2012-01-05 109 views
11

在我曾參與過的大多數桌面Web應用程序中,都需要一個服務器端Web框架。服務器端web框架(Struts,Spring MVC等)有一些控制器用於處理請求,然後是用於生成動態內容的模板引擎(Velocity,JSP等)。用於移動web應用程序的服務器端體系結構

現在我開始研究移動Web應用程序,並且我看到的所有討論圍繞選擇UI框架(jQuery Mobile,jQTouch,Sencha Touch等)展開,但是我沒有看到關於發生什麼的討論服務器端實際處理HTTP請求或生成HTML,CSS和JavaScript。

這是否意味着大多數移動Web應用程序不使用服務器端的Web框架...這意味着服務器提供靜態內容,多數交互行爲被編碼在JavaScript中,唯一的服務器端代碼JavaScript客戶端加載的REST服務?

如果我想使用服務器端Web框架,這是一個壞主意?我會面對什麼問題?有沒有人對web框架提出過建議,這將是一個高效的平臺,而不會阻礙像jQuery移動那樣的移動UI框架?

注:我的工作主要是開發人員來自企業級Java的背景,但是,我不會限制到僅基於Java的web framoworks。還有其他的框架可以考慮Java的根源(Grails,Lift等)。

回答

13

一個很好的問題,我會以這種方式回答。目前的趨勢是在前端建立很多互動性。有幾個原因。有些人這樣做是因爲這是新事物,其他人是因爲他們試圖複製桌面體驗。最終,任何給定的Web項目只有一個目標,那就是創造最佳和最可持續的用戶體驗。

也就是說,將有服務器端技術,以避免,這將是任何生成前端爲您,但不使用jQuery。今天,超過45%的網站使用jQuery,如果您選擇了其他內容,您將立即與主流移動框架發生衝突。 (GWT,IceFaces,我在看你)。

可能是要走要麼是使用基於Spring的實現或Prime Faces最安全和最靈活的方式。 Spring Mobile值得一看。 Prime Faces實際上實現了jQuery Mobile,並且可以使用Theme Roller進行主題化。

在一般情況下,它真的並不重要後端框架(如果有的話),你使用,只要你推好標記。瀏覽器不關心,用戶關心的唯一事情就是一個很好的體驗。所以,只要不妨礙你的開發者,只要選擇任何可以讓你的開發者爲後端開心的東西。

至於前端框架,是的,他們的受歡迎程度正在增加,因爲他們往往對一些標準化的最佳實踐移動。 jQuery Mobile vs Sencha vs jQTouch有許多比較。我會留給你看哪個最適合你的項目,但肯定會使用jQuery Mobile或Sencha,因爲圍繞這些支持的社區非常龐大,你不太可能看起來像許多破舊的本土移動網站,當他們沒有經驗時,試圖從頭開始。這只是傷心。我個人的建議是jQuery Mobile,因爲它涵蓋了如此廣泛的設備,並且(如果您堅持標準的逐頁模式),即使是功能手機中最笨的功能也會降級,並且仍然可以正常工作,但在智能手機上看起來令人驚歎。

要你只使用JavaScript的REST風格的設計荷載一切,管理國家的問題。有很多人這樣做,這當然是一個快速的體驗,但你會立即限制誰可以使用它的移動瀏覽器支持良好的JavaScript的人。您只會看到支持iOS,Android 2.2+,BlackBerry 6+和Windows Phone 7+。所有其他人可能會很難查看您的網站。在轉向類似的實現之前,請仔細考慮您的觀衆。如果您的網站在沒有JavaScript的情況下無法正常工作,並且您的主要客戶在企業界......當最新的黑帽會議暴露公司電話薄弱環節並採取保守風險緩解措施(偏執狂)時會發生什麼,他們會將安全政策每個人都禁用JavaScript的手機。這種事情總是發生。所以,考慮你的觀衆。

0

看看ItsNat,ItsNat邀請您考慮在客戶端JavaScript中,但在Java中編碼,並在服務器上執行生成相同的JS代碼到客戶端。

與GWT不同的是,爪哇W3C DOM代碼在服務器中執行和JS是自動生成的,同時GWT在客戶端執行,服務器的數據必須傳送到客戶端。

相關問題