`
man1900
  • 浏览: 431958 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

如何完成EXT3中的JS后加载,提高应用程序的加载速度

    博客分类:
  • EXT3
阅读更多

EXT的应用程序是基于WEB 2.0上构建的,也即One Application One Page,即一个应用程序只有一个页面,当我们开发的功能比较多的时候,也即需要在那个页面中加入很多我们写的js,如
如我们在index.jsp中大量加入不同的应用程序模块的 js:

       <script type="text/javascript" src="<%=request.getContextPath()%>/js/system/AppUserView.js"></script>
       <script type="text/javascript" src="<%=request.getContextPath()%>/js/system/AppUserForm.js"></script>
       <script type="text/javascript" src="<%=request.getContextPath()%>/js/system/DepartmentView.js"></script>
       <script type="text/javascript" src="<%=request.getContextPath()%>/js/system/DepartmentForm.js"></script>
       <script type="text/javascript" src="<%=request.getContextPath()%>/js/system/CompanyView.js"></script>
       <script type="text/javascript" src="<%=request.getContextPath()%>/js/system/FileAttachView.js"></script>
       <script type="text/javascript" src="<%=request.getContextPath()%>/js/system/FileAttachForm.js"></script>
       <script type="text/javascript" src="<%=request.getContextPath()%>/js/system/FileAttachDetail.js"></script>

 



这将导致我们的开发程序需要引入的js越来越多,也即我们第一次进入这个程序的时候,需要等待加载所有这些js后才能完成我们的功能操作。这将使得程序越来越慢。
因为浏览器每次都需要解释这么多的js.


我们可以把js先不引入,当用户点击某块功能时,才把该功能对应的所需要的js导入。并且加载完成后,在本次操作过程中(如没有刷新浏览器的前提下),该次加载的js已经完成,后面相同功能功能模块的操作不再加载该模块的js.

功能模块对应的js则需要在App.import.js中定义,如下所示:

/**
 * 系统导入的模块js,主要用于后加载方式,需要使用某些js时,需要在此指定加载哪一些。
 */

 Ext.ns("App");
 App.importJs = {
    AppRoleView : [
           __ctxPath + '/js/system/AppRoleView.js',
           __ctxPath + '/js/system/AppRoleForm.js'],
    PersonalDocumentView : [
           __ctxPath + '/js/document/PersonalDocumentView.js',
           __ctxPath + '/js/document/DocumentView.js',
           __ctxPath + '/js/document/DocumentForm.js',
           __ctxPath + '/js/document/DocumentSharedForm.js',
           __ctxPath + '/js/document/DocFolderForm.js']
};

 



 
如角色模块,当点击角色模块时,即加载/js/system/AppRoleView.js, /js/system/AppRoleForm.js两个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);
                  }
              });
    }
}

 

 

2
1
分享到:
评论
2 楼 man1900 2009-09-23  
按我的理解,这种写法可能有些问题,如url是否为类似的jsp,还是单独的js。tab能否动态加载某个js?你的js加载后如何完成其他操作?如创建类似的js对象,或创建一个Panel?
1 楼 nickevin 2009-09-23  
我的项目是 传统ui 也就是 左边是 tree 右边是tab

所以 点击 tree 的个子模块链接会载入相应的页面 页面里面包含 js 

tabPanel.add({
    id: 'tab' + node.id, // be careful! can't number as id
    title: node.text,
    closable: true,
    autoLoad: {
        url: url,
        scripts: true
    }
})

这样既可

不知道我的意思理解有无偏颇 讨教中

相关推荐

    Ext4 动态加载js例子

    Ext4 是一个基于 JavaScript 的富客户端应用框架,主要用于构建复杂的 Web 应用程序。它提供了丰富的组件库,包括表格、面板、菜单等,使得开发者能够创建功能强大的交互式用户界面。`Ext.Loader` 是 Ext4 中的一个...

    ext扩展 延时加载

    在IT行业中,"ext扩展 延时加载"是一个关于前端开发的重要概念,特别是对于使用Ext JS框架的应用程序。Ext JS是一个强大的JavaScript库,用于构建数据驱动的富客户端应用程序。延时加载(Lazy Loading)是一种优化...

    EXT JS 实例集合

    EXT JS 是一个强大的JavaScript库,专门用于构建富客户端应用程序,尤其在企业级Web应用中广泛应用。EXT JS 提供了丰富的组件、布局管理、数据绑定、拖放功能等,使得开发者可以构建出美观且功能强大的用户界面。EXT...

    Ext js 网页虚拟桌面

    5. **文件小巧**:这可能意味着开发者通过优化代码和利用Ext JS 的模块化结构,减少了不必要的文件大小,提高了应用的加载速度和性能。Ext JS 允许按需加载组件,避免了加载未使用的代码。 6. **交互与功能**:虚拟...

    ext2.2中文帮助文档

    EXT2.2利用AJAX技术实现了后台数据的异步加载和动态更新,从而提高了网页的响应速度和用户体验。EXT2.2的AJAX请求通常通过EXT JS的Ajax类或FormPanel组件实现,支持XML、JSON等多种数据格式。 **JS(JavaScript)**...

    Ext.NET Web应用程序开发教程

    - **性能优化**:支持延迟加载、虚拟滚动等技术,帮助提高应用的性能和响应速度。 #### 五、Ext.NET Web应用程序开发教程的内容概览 - **基础知识**:介绍了Ext.NET的基本概念、安装配置步骤以及开发环境的搭建方法...

    Ext JS Notification 插件

    `protoculous-packer.js`可能是一个打包工具,用于压缩和优化JavaScript代码,提高加载速度和性能。而`Ext.ux.Notification.js`则是实际的Notification插件源代码,它扩展了Ext JS框架,添加了显示通知的功能。 在...

    Ext JS下载及配置

    3. **初始化应用**: 使用 `Ext.onReady` 函数来确保 DOM 加载完成后再执行 JavaScript 代码。例如: ```html &lt;script type="text/javascript"&gt; Ext.onReady(function() { Ext.MessageBox.alert("Hello World", ...

    Ext JS 4.2 简单环境搭建C#版的

    9. **优化和性能提升**: 当你的应用程序变得复杂时,可以考虑使用Sencha CMD工具进行构建,它可以帮助你压缩和合并JavaScript和CSS文件,提高应用加载速度。 10. **持续学习和更新**: Ext JS社区活跃,有许多资源和...

    ext下载包,ext,ext包,ext下载

    6. 在页面加载完成后初始化EXT应用。 EXT是一个功能强大的前端框架,特别适合开发复杂的Web应用。其丰富的组件库、强大的数据管理和优秀的可扩展性使它在企业级应用开发中广泛应用。然而,由于其体积较大,对于性能...

    Ext JS 6 by Example翻译

    Ext JS 是一个功能强大的JavaScript框架,用于构建交互式的、数据驱动的Web应用程序。它提供了丰富的组件库,包括表格、图表、菜单、工具栏、窗体等,使得开发者可以快速创建复杂的用户界面。这本书《Ext JS 6 by ...

    ext.net 中树加载及实现方式,初学者可以参考

    而异步加载则在用户展开节点时动态请求数据,适合大数据量的场景,能提高页面加载速度。 2. **树的数据绑定**:数据通常通过`Store`来管理,`Store`与服务器端的Web服务或API进行交互,获取JSON或XML格式的数据。在...

    Ext-Gantt和相关js如ext-all.js ext-base

    Ext-Gantt是一款强大的JavaScript库,专门用于在Web应用程序中创建和展示甘特图。它基于Ext JS框架,一个广泛使用的富客户端JavaScript库,提供了一系列组件和功能,用于构建交互式的用户界面。Ext JS的核心文件包括...

    Ext js 皮肤

    Ext JS 是一个强大的JavaScript框架,主要用于构建富客户端Web应用程序。其强大的功能之一是支持自定义皮肤,这使得开发者可以根据需求创建具有独特外观和感觉的应用。皮肤是改变Ext JS组件视觉样式的一种方式,允许...

    Ext JS 1713个icon图标 自带生成png转css应用

    Ext JS 是一个强大的JavaScript框架,主要用于构建富客户端Web应用程序。它提供了一系列丰富的组件、数据管理功能和用户界面元素。在给定的资源中,“Ext JS 1713个icon图标”指的是Ext JS库内含的一套全面的图标集...

    Ext Js jar包

    1. **预编译的JavaScript文件**:这些是Ext JS库的已压缩和优化版本,用于提高页面加载速度。 2. **Java接口或适配器**:这些接口允许Java代码与JavaScript库进行交互,通常是通过Java的ScriptEngine API或者第三方...

    ext 下拉树 ext2

    在大型应用中,这种特性尤为重要,因为它可以提高页面的加载速度,只在用户需要时才加载相关的树节点数据,而不是一次性加载所有数据。这种异步加载通常通过Ajax请求实现,能显著减少初始页面的加载时间,并且优化...

    ext最全主题样式2.x 3.x

    EXT是一个流行的JavaScript库,用于构建富互联网应用程序(RIA)。它提供了丰富的组件库,包括网格、表格、图表等,以及一个强大的布局系统。EXT的主题和样式是其灵活性的关键部分,允许开发者根据需求定制用户界面...

    js压缩工具,优其针对ext开发的js

    JavaScript是Web开发中不可或缺的一部分,尤其在构建复杂的前端应用时,如Ext JS框架。Ext JS提供了丰富的组件和功能,帮助开发者构建出具有企业级特性的应用程序。然而,未经优化的JavaScript代码可能导致页面加载...

Global site tag (gtag.js) - Google Analytics