Ajax ext 的根目錄體系結構

小科學家發表於2009-04-14

1)目錄結構

a)js部分

根目錄下建立/js/ext/目錄,存放所有和ext相關的js檔案。/js/ext/目錄下可建立ext相關子目錄

/js/ext/adapter/ — 存放介面卡jquery,prototype,yui。。。

/js/ext/experimental/ — 存放ext一些未正式推出的元件,可參考ext開發包examples例子部分。

/js/ext/plugins/ — 存放ext擴充套件元件,例如ext的patch檔案,ext主題,擴充套件組建等等。

/js/ext/resources/ — 不用說了,ext開發包中的resources目錄直接拷貝。

/js/ — 目錄下可以放一些最常用 的js檔案。

/js/ext/ — 目錄下放置ext-all.js,ext-base.js,ext-lang-zh_CN.js,ext核心檔案;

b)模組部分

根目錄下建立/module/資料夾,每個模組在/module/目錄下新建資料夾,例如:

/module/comment/ — 評論模組

/module/stat/ — 統計模組

每個模組目錄下新建js目錄存放當前模組需要引用的js檔案,例如/module/comment/js/comment.js

為簡化開發不使用struts,直接使用jsp代替struts;每個模組下新建action.jsp替代structs接受

ext ajax請求,action.jsp不負責頁面的顯示。只負責service層方法呼叫及請求跳轉。

c)許可權部分

根目錄下直接建一個security目錄完事。

2)基本佈局及許可權

border佈局,center區域使用TabPanel組建增加新的iframe視窗裝載系統不同模組。

暫不在意iframe的效率問題,儘可能做到每個系統模組+UI部分的獨立。

初始化佈局時TabPanel元件中新增預設的歡迎登入頁面,解決TabPanel元件新增新視窗時高度增加的bug。

許可權系統設計參考spring security建議的資料庫設計,專案後期可與spring security整合。

3)使用者訪問超時

解決兩種情況下的使用者訪問超時。
a)普通http請求的session超時。
b)非同步http請求的session超時,使用ext後大部分的介面重新整理都是非同步的ajax請求。

不管是那種型別的http請求總是可以由一個過濾器來捕捉。
分類:普通http請求的header引數中沒有x-requested-with:XMLHttpRequest頭資訊,而非同步的有。
其實對於常見的ajax框架,header中還有標示自己身份的header資訊。

對於普通的http請求,發現session超時後直接重定向到一個超時頁面,顯示訪問超時。
對於非同步http請求,發現session超時後則向請求的response中寫入特定的超時頭資訊,客戶端ajax物件檢測
頭資訊,發現有超時狀態標誌後呼叫顯示超時資訊的javascript方法,提示使用者訪問超時。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/21359667/viewspace-589018/,如需轉載,請註明出處,否則將追究法律責任。

相關文章