日期:2014-05-16 浏览次数:20439 次
Ext是一个强大的js类库,它提供了丰富的,非常漂亮的外观体验,成为众多界面层开发人员的追捧!其核心的组件基本覆盖了我们构建富客户端的常用的组件。
在B/C架构出来的都是基于web2.0,也即是One Application One Page (一个应用一个页面),这样如果你Web程序功能性过大,在加载JS的时候,会导致页面加载非常的慢,特别是的IE,Chrome和Firefox相对好点。以前在华为的时候,做一个小的项目管理系统,一开始没有考虑到很多东西,接到功能的时候就做,在初入系统的时候直接加载所有的JS(其中包括一些Ajax请求数据),一次的Seesion中也存了很多的数据,这个导致加载很慢。特别在数据超过1000条(一次性访问)或者用IE访问,需要4s的时间才能加载,初始加载7-8S左右。因为浏览器每次都需要解释这么多的js.
如下:
Ext.ns("App"); App.importJs = { MenuView: [__ctxPath + "/js/system/MenuView.js", __ctxPath + "/js/system/MenuForm.js", __ctxPath + "/js/system/MenuFunctionForm.js", __ctxPath + "/js/system/MenuUrlForm.js", __ctxPath + "/js/system/IconSelector.js"], UserJobView: [__ctxPath + "/js/system/UserJobView.js", __ctxPath + "/js/system/UserJobForm.js", __ctxPath + "/js/system/RelativeJobView.js", __ctxPath + "/js/system/RelativeJobForm.js", __ctxPath + "/js/system/RelativeUserView.js", __ctxPath + "/js/system/RelativeUserForm.js", __ctxPath + "/js/system/DepartmentForm.js", __ctxPath + "/js/system/UserJobDetailForm.js", __ctxPath + "/js/system/JobForm.js", __ctxPath + "/js/selector/UserSelector.js", __ctxPath + "/js/selector/JobSelector.js", __ctxPath + "/js/selector/DepSelector.js"], };
代码说明:在使用哪个模块时就调用哪个模块。
点击左边的菜单时,会根据其对应的Id来进行加载js.
以下为AppUtil.js中定义的按模块加载js,并且创建那个模块的对象 /** * Import Js * @return {} */ function $ImportJs(viewName,callback) { var b = document.getElementById(viewName+'-hiden'); if (b != null) { var view = eval('new ' + viewName + '()'); callback.call(this, view); } else { var jsArr = eval('App.importJs.' + viewName); ScriptMgr.load({ scripts : jsArr, callback : function() { Ext.DomHelper .append( document.body, "<div id='" + viewName + "-hiden' style='display:none'></div>"); var view = eval('new ' + viewName + '()'); callback.call(this, view); } }); } }
学习于man1900