EXT3中按照模块加载JS,提高应用程序的加载速度 。

来源:互联网 发布:单片机仿真常用代码 编辑:程序博客网 时间:2024/06/05 00:26

说明:

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

 

原创粉丝点击