Extjs4 autoload和iframe的取舍


一般的mis應用,基本上采用左邊樹布局,右邊操作區域的布局方式,Extjs更是經典布局方式。

Extjs4.x,有兩個方式可以實現右側的center區域的加載,一種是autoload,一種是iframe方式,最近對這兩個方式比較糾結,不知道到底該用那種方式好,晚上做了下詳細的比較,我的選擇是IFrame,雖然很多人提倡用autoload方式。

 Autoload和iframe方式的本質區別

1.AutoLoad 只需要加載一次ext-all.js、css等核心庫文件

2.iframe方式需要在每個頁面都加載一次,這對於ext這么龐大的庫不是件好事,但是傳言可以通過請求重定向,讓瀏覽器只從緩存加載核心文件,待驗證

先撇開上面這個問題,采用iframe方式有什么好處呢?

1.隔離關注面,由於iframe內的模塊基本是脫離程序“外殼”獨立存在,能獨立執行的,如果有問題,我們只需要聚焦即可

2.變量問題,采用autoload,應用類似單頁面應用,尤其是團隊開發,變量問題是個大問題,而iframe變量是獨立的,很少重復

3.js mvc的開發方式,官方提供的js分包方式,個人認為小應用尚可,但是稍微大一點的系統,js很多,那無疑又是一場惡夢

官方推薦方式   我的做法
app       User    
  controller       controller.js  
    userController.js     model.js  
    orgController.js     store.js  
  model       view.js  
    userModel.js        
    orgModel.js   Org    
  store       controller.js  
    userStore.js     model.js  
    orgStore.js     store.js  
  view       view.js  
    userView.js        
    orgView.js        

 團隊開發中,一個是方便閱讀,容易找到對應的js,方便排錯

當然如果按照我的分文件夾的方式,也會帶來一個損失,那就是js的重用問題,這個好像和extjs有的違背,呵呵,但是可以將一些公共的model,store放到單獨的common文件,折中解決問題。

4.iframe可以方便的加載一些非extjs的應用頁面,當然autoload也是可以實現的,只是需要做跳轉

5.iframe最大好處還是團隊項目的開發

6.隨着模塊的增加,autoload可能會帶來其他問題

 

當然用了iframe方式必定也會犧牲一些東西,像模塊重用、實時換膚等

以上是我選擇iframe的理由,具體是否適合,還需要驗證,以上只是我的幾點猜測,還未正式運用到實戰中,所以歡迎各位了解extjs的大牛批評指導

 

    


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM