`
kimmking
  • 浏览: 546610 次
  • 性别: Icon_minigender_1
  • 来自: 中华大丈夫学院
社区版块
存档分类
最新评论

解决Ext对于复杂项目加载慢的一个思路

    博客分类:
  • ext
阅读更多
本人新手,以下仅仅是个人观点:

OPOJ方式下使用Ext,由于在第一次加载时,加载了太多了js,导致加载时间过长。
加速加载js库大概有如下几个方法(非网络因素):
1、硬件:用更好的cpu,更高的内存
2、软件:使用对ext支持更好的os和浏览器
3、各个浏览器窗口共享js对象而不是js文件
4、实现单页面按需加载js

方法1、2都不是开发者所直接能控制的。
目前来说对于子页面不能共享父页面的ext库,虽然一般他们用的js文件是相同的。
所以目前来说方法3可能行不通。


传统web方式下,各个页面使用自己的js(量比较少)。
由于ext库本身巨大(不是代码量,应该是对象数和对象的复杂程度),使用单页面的好处也很明显(不是单js,通常单js是为了网络传输,但是对于传输后浏览器加载来说,几乎没有区别)。


同时我们一般用tab来划分业务,目前部分ext users使用tab+iframe来实现多页面的应用。这样就可以将各个业务使用的非通用的js区别来,各自在使用时加载到独立的页面,其实还是传统的方式。

考虑到目前已经有很多js库使用按需加载的方式来管理js文件和对象。可以从这个方面出来,利用方法4来实现大型js库的提速。由于本人能力有限,只是想法而已。

最后,提供一个有点关系的extend:总的来说,就是通过一个url来动态的加载所需的js脚本来创建js组件。

大家可以直接看例子。个人觉得还是太粗糙,期盼牛人们实现一个功能更完善,设计更好的extend。这样,ext向前发展的轮子应该可以走的更远、应用范围也会更广。

http://extjs.com/forum/showthread.php?t=18023

-------------------
ExtJS - Plugin - RemoteComponent / LiteRemoteComponent - Demo


Plugin for ExtJS Ext.Container / Ext.Toolbar Elements to dynamically add Components
from a remote / AJAX source to the Element's body.
author: Timo Michna / matikom



* Loads configuration as JSON-String from a remote / AJAX source.

* Adds the Components to the Container body.

* Additionally to its own config options the class accepts all the configuration options
required to configure its internal Ext.Ajax.request().



* The RemoteComponent consists of the lightweight Ext.ux.Plugin.LiteRemoteComponent class and
the more configurable Ext.ux.Plugin.RemoteComponent which extends Ext.util.Observable.



Ext.ux.Plugin.RemoteComponent:

* Several events, which can be used to stop further processing by returning false.

* Processing can also be stopped by config option breakOn at any of the plugins events.

* AJAX requests to the remote source can be defered by config option loadOn to any event of the container. Usefull for lazy loading etc.

* LiteRemoteComponent and RemoteComponent - Plugins can be nested. So a Plugin can load and create Components, which also have (a) RemoteComponent - Plugin(s)



Where to use:

You can use the plugin with any Component with
plugin ability - this is Ext.Container, Ext.Toolbar
and every Component derived from both of them.
For example: TabPanel, Tip, Window, FieldSet, FormPanel,
GridPanel, TreePanel, PagingToolbar, etc.


What to use for?

This is a very small but powerfull plugin. use it for:
- lazy loading of components
- provide different views of components per request
- remote Forms
- cascade component views based on server side authentification
- testing of component configuration. Don´t reload the document,
destroy and reopen a component with a RemoteComponent plugin.
- and many more


分享到:
评论
3 楼 popew 2008-07-28  
http://www.iteye.com/topic/134964
2 楼 kimmking 2008-07-24  
popew 写道
JSVM框架已经解决楼主的需求,按需加载,继承等问题。
JSVM已经对EXT2.1进行重新组织,官方网站http://jsvm.org有实例。

官方网站和论坛上我ms找不到ext4jsvm的下载链接
1 楼 popew 2008-07-24  
JSVM框架已经解决楼主的需求,按需加载,继承等问题。
JSVM已经对EXT2.1进行重新组织,官方网站http://jsvm.org有实例。

相关推荐

    Ext 动态加载表单数据

    4. **Ext.form.FieldSet**:如果表单数据复杂,可以使用FieldSet来组织字段,FieldSet是一个可折叠的容器,可以包含多个字段。 5. **Ext.data.Store**:Store是用来存储数据的容器,它可以与表单联动。在动态加载...

    很缺乏的中文 EXT-JS BUILD 帮助文档

    3. 解决 Ext 对于复杂项目加载慢的一个思路(http://www.javaeye.com/topic/218727) 4. 谁告诉我extjs官方网站上按需下载js库的页面在哪里(http://www.javaeye.com/wiki/topic/166010) 通过这些资料,开发者可以...

    一步一步使用Ext JS MVC与Asp.Net MVC 3开发简单的CMS后台管理系统之用户管理(4) 源代码

    在本教程中,我们将深入探讨如何利用Ext JS的MVC...这只是一个起点,实际的CMS系统可能涉及更多复杂的业务逻辑和功能,但基础的构建方法和思路是一致的。通过不断实践和学习,你将能够构建出更加强大和灵活的Web应用。

    深入浅出Ext JS(第2版)随书光盘源码

    Ext JS 是一个强大的JavaScript库,专门用于构建富客户端Web应用程序。深入浅出Ext JS(第2版)是一本深入解析这个框架的专业书籍,其随书光盘源码提供了丰富的示例代码,帮助读者更好地理解和应用Ext JS的核心概念和...

    ExtAspNet v2.2.1 (2009-4-1) 值得一看

    -修正了使用IFrameUrl的Tab在切换过程中会重复加载的问题,这是一个在v2.1.6引入的问题(feedback:eroach)。 -修正了启用AutoPostBack的Grid,其RowClick会覆盖LinkButtonField, HyperLinkField, CheckBoxField的...

    winform上传图片功能的设计思路

    1. **数据库设计**:首先,在数据库中创建一个包含图片名称的字段,如使用`VARCHAR`类型(对于SQL Server)或`TEXT`类型(对于Access)。此字段将用于存储图片的文件名。 2. **图片选择与处理**:在Winform界面中,...

    EXtJs3.2.docx

    ExtJS是一个强大的JavaScript库,专门用于构建富互联网应用程序(RIA)。它提供了一套完整的前端组件,可以创建复杂且交互丰富的Web应用界面。该框架最初基于YUI(Yahoo! User Interface Library),但随着时间的...

    操作系统课程设计要求1

    对于操作系统设计,这通常意味着在虚拟机如QEMU或VMware上配置一个干净的开发环境,安装必要的交叉编译工具链,例如GCC,以及调试工具如GDB,以便在不同的硬件平台上进行编译和测试。 第二步,Boot Boot sector ...

    ExtAspNet_v2.3.2_dll

    -修正了使用IFrameUrl的Tab在切换过程中会重复加载的问题,这是一个在v2.1.6引入的问题(feedback:eroach)。 -修正了启用AutoPostBack的Grid,其RowClick会覆盖LinkButtonField, HyperLinkField, CheckBoxField的...

    ExtJs-3.2.0.rar

    ExtJS强调组件化开发,每个UI元素都可以看作一个独立的组件,可以组合使用构建复杂的用户界面。这种模块化的设计思路使得代码复用性高,减少了工作量。 8. **数据绑定** 数据绑定是ExtJS的一个强大特性,它允许...

    EZJ V2.10 ( JavaScript 框架)

    总的来说,EZJ V2.10是一个为中国开发者量身打造的JavaScript框架,它降低了前端开发的复杂性,提高了开发效率,同时也提供了丰富的功能和优秀的用户体验。无论你是初学者还是经验丰富的开发者,都可以在EZJ的帮助下...

    grub-0.93源码

    grub-0.93源码包提供了GRUB 0.93版本的原始源代码,这是一个早期但仍然具有历史价值的版本。通过分析这些源代码,开发者和学习者可以深入理解GRUB的工作原理和设计思路。 首先,GRUB的主要功能包括: 1. **多操作...

    linux内核源码分析(有注释)

    总的来说,"Linux内核源码分析(有注释)"是一份宝贵的资料,它为我们提供了一个探索操作系统底层世界的窗口,帮助我们成为更出色的系统工程师。通过学习这份资料,我们可以不断提升自己的技能,解决实际工作中遇到...

    linux0.11源代码

    Linux 0.11是Linux操作系统历史上的一个重要里程碑,它标志着Linux从一个个人项目逐渐发展成为一个全球开发者共同参与的开源项目。这个版本的源代码包含了Linux内核的基础架构和核心功能,为后来的Linux发行版奠定了...

    js图片 放大 缩小 移动 鹰眼

    首先,我们需要在HTML中创建一个`<canvas>`元素,并将要展示的图片作为`<img>`标签加载,然后将其绘制到Canvas上。Canvas提供了一个强大的绘图环境,我们可以利用其API进行图片的操作。 ```html ...

    Extjs 中的 Treepanel 实现菜单级联选中效果及实例代码

    ExtJS是一个基于JavaScript的开源框架,用于构建富交互的Web应用程序。它广泛使用了组件化开发的思想,而TreePanel(树面板)是ExtJS中实现树状结构视图的一个重要组件。Treepanel通常用于显示具有层级关系的数据,...

    Linux内核0.11(0.95)完全注释

    0.11版本在1993年发布,由Linus Torvalds开发,标志着Linux从一个个人项目走向了一个全球性的开源项目。 内核的主要组成部分包括: 1. **进程管理**:内核通过进程表管理多个并发执行的任务,实现任务调度、进程间...

Global site tag (gtag.js) - Google Analytics