看板 java 關於我們 聯絡資訊
為了避免文章太亂, 改用項次來討論好了。 1. GWT 的目的? 很顯然 GWT 的出現不是為了傳統的 Web Site, 他是專門用來開發 Web Application, 像是 Google Map, gmail, plurk... 等, 這些產品的共通點在於它們都只有一個主頁面。 在這個主頁面上的操作都由 AJAX 完成, 當點選了某一個項目時, 頁面上的某個區域就會被換成對應的項目。 說穿了,Web App 只不過是 Web Site 的一個子集, 而在這兩者之間的界線,我們目前還沒有辦法清楚的區分。 在這條界線的附近, 有一些功能我們認為是屬於 Web App 的,但是用 GWT 卻不太容易實作; 另外一些功能可能不屬於 Web App,但 GWT 做得到,那麼我們該不該使用呢? 這篇文章的目的就是希望能夠讓大家討論出: (1) 我該 (不該) 用 GWT 做什麼。 (2) 如何用 GWT 實作某功能。 2. Login 該不該用 GWT 做? 前面有討論過了, 另外用別的機制登入取得 Session/Cookie 後再交給 GWT, 不失為一個簡單且可行的方法。 但我認為實際的應用還是該看場合, 例如,如果現在不是一進入首頁就必須登入, 而是只有在進行某項服務,或是使用了多久時間後才需要登入, 難道這個時候還要交由 GWT 外部的程式來處理嗎? Google 自己的服務都不是由 GWT 來做登入的動作, 但是他有很多的 Web App,甚至彼此互相關聯, 所以他用上了 Single Sign-On。 可是我開發的可能只是一個單獨的 Web App 呀。 最後一個原因則是由於我不會寫網頁造成的 Orz 我只是要開發 Web App, 也用了專為 Web App 量身打造的 GWT, 為什麼我非得用其他語言寫個 login page? ps. 我只是提出 GWT "也" 可以用來寫 login page, 並不是說所有 login page 都該用 GWT 寫, 實際上還是看場合取捨囉。 3. GWT 取得資料的方式。 之前用 GWT 在寫一個, 需要向資料庫取得資料顯示在頁面時, 我愣了一下。 因為我沒有辦法像其他語言一樣, 將 query 的結果跟網頁一起送給 client 端。 我只能將一個 AJAX 的呼叫放在 onLoad() 中, 當這個頁面被載入時, 瀏覽器就會執行這個呼叫,取得資料,並顯示在畫面上。 這個做法讓我覺得非常的不直覺, 雖然這可以降低頁面一開始需要下載的大小。 ps: 我不是要批評這個作法,只是為了第 4 項做說明。 4. 用 GWT 做 login 的安全性問題。 前一篇文章有說過,用 GWT 做 login 時,流程如下: (1) client 端下載了 EntryPoint 頁面 (2) 利用 AJAX 檢查是否有登入 (3) Server 端回傳登入結果 (4) Client 端顯示登入後的頁面 而在前一篇也說過了,即使我還沒登入, 登入後的頁面也會在步驟 (1) 就被下載。 還好 GWT 取得資料的方式是在頁面被載入時, 才會透過 AJAX 去取得資料, 所以即使取得了步驟 (1) 的畫面, 也只有其中靜態的部份, 通常來說不會有什麼太過重要的資料。 這就是為什麼我認為在寫法正確下,不會有問題的原因。 5. 補充 在昨天寫完文章後, 我有看了一下這段影片與投影片, ( http://tinyurl.com/yb9yk7y ) 裡面似乎有提到一些架構, 我接下來應該會朝這個方向研究看看吧。 (不過我英文不太好,根本聽不懂他在說啥呀 +_+) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.132.160.117 ※ 編輯: tkcn 來自: 220.132.160.117 (12/14 20:58) ※ 編輯: tkcn 來自: 220.132.160.117 (12/14 21:34)