`
nbkangta
  • 浏览: 430526 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
社区版块
存档分类
最新评论

ExtJs中的xtype

    博客分类:
  • JS
阅读更多

论坛很多人都在谈论ExtJs的内存泄露的问题,可是我发现在ExtJs官方论坛上这样的讨论很少,不明白其中原因。今天偶然的点击的spket的extension生成模板,注意到了官方推荐的自定义组件的开发模式,发现了问题所在。

关键就在xtype!结合之前的动态JS加载工具类,一个性能优秀的ExtJs开发框架逐渐成形

 

转载一篇xtype的文章http://www.iteye.com/topic/191657

序言

根据我在论坛上的观察,xtype用起来的时候疑惑会比较多。甚至有些人根本忽略xtype,或者不清楚它是什么。所以我决定阐述一下这个xtype的概念。

定义

xtype就是一个代表类(Class)的标识名字。

譬如,你有这个类,名字是Ext.ux.MyGrid。正常情况下你需要用这个名字来实例化这个类(创建类的对象)。

除了类名外,你还可以这样登记类的xtype:

Ext.reg('mygrid', Ext.ux.MyGrid); 
 



其中xtype 是 mygrid 而类名的一般形式是Ext.ux.MyGrid。上面的语句登记了新的xtype ,换种说法说,xtype mygrid 与类 Ext.ux.MyGrid是连在一起的。

到底有什么好处?

试想一下,你手头上的是一个大型的项目,为了响应用户的操作,程序里面包含者大量的对象(windows、forms、grids)。用户点击图标或按钮,就会新建一个窗体,窗体里面又有grid,最终在屏幕上渲染出来。

嗯,我们回到Ext2.x之前的编码,那时候我们实例化所有对象是页面第一次加载后就进行的(程序代码第一次的运行)。在客户端内存 中,Ext.ux.MyGrid类的对象已经存在,等待用户的点击。 同样是这个grid,假设你上百个的实例,...是多么浪费宝贵的资源啊!很多grid其实用户未必会点击让它出现。

延时实例化

如果你使用xtype,那么在内存中的仅仅是一个配置项对象,像:

 {xtype:'mygrid", border:false, width:600, height:400, ...}  
 
{xtype:'mygrid", border:false, width:600, height:400, ...}



消耗没有复杂的实例对象来得大。

嗯,用户点击按钮或图标会怎么样呢?Ext会辨认出它是一个准备要渲染的grid但不立刻实例化,Ext在ComponentMgr的帮忙下明白 这么一回事:“如果我要实例化xtype mygrid的对象,我就知道要创建的实际是类Ext.ux.MyGrid的对象”。即如下列代码:

create : function(config, defaultType){  
    return new types[config.xtype || defaultType](config);  
}  
 


等价于:

return new Ext.ux.MyGrid(config);  
 
return new Ext.ux.MyGrid(config);



然后实例化grid,进行渲染和显示。谨记:需要的时候才实例化

分享到:
评论

相关推荐

    extjs中的xtype的所有类型介绍

    ExtJS 中的 xtype.typename 介绍 ExtJS 中的 xtype 是一个非常重要的概念,它用于定义组件的类型,从而确定组件的行为和样式。xtype 是 ExtJS 的核心组件之一,它提供了大量的组件类型,满足不同场景下的需求。 ...

    extjs的xtype class对照表

    在ExtJS中,`xtype` 是组件(Component)的标识符,它定义了组件的类型。`xtype` 类似于HTML中的元素标签,但针对ExtJS的组件体系。它们是轻量级的,用于创建组件实例时引用预定义的组件类。`xtype` 与对应的`class`...

    extjs xtype

    在EXTJS中,`xtype`是一个关键的概念,它用来定义组件的类型或类。`xtype`是EXTJS中组件的简写形式,可以理解为组件的标识符,用于创建组件实例时引用已定义的组件类。通过使用`xtype`,开发者可以简化代码,减少...

    ExtJs_xtype一览

    在ExtJs框架中,`xtype`是一种用于标识组件类型的字符串,它定义了组件的类。这个特性使得在创建UI时能够简洁地指定组件的类型,而无需直接实例化具体的类。以下是一些主要的`xtype`及其对应的组件类和功能的详细...

    ExtJS的xtype列表

    `xtype` 是ExtJS中的一个重要概念,它是组件类的简写形式,用于在配置对象中声明组件类型,使得代码更加简洁。理解并掌握ExtJS的各种`xtype`可以帮助开发者快速构建复杂的用户界面。 1. **基本组件**: - `button`...

    ExtJs xtype一览

    在ExtJs框架中,`xtype`是用于定义组件类型的扩展类型。这是一种简化的组件标识方式,使得开发者可以更方便地在配置文件或代码中指定组件类型,而无需完整地写出对应的类名。下面,我们将根据提供的内容对ExtJs中的...

    extJs xtype 类型

    在ExtJS框架中,`xtype`是一种用于标识特定组件类型的简短字符串,便于在配置对象中快速定义组件。本文将深入探讨ExtJS中的各种`xtype`类型,帮助开发者更好地理解并运用这些组件。 #### 基本组件 1. **`button`:*...

    ExtJS xtype class对照表

    ExtJS xtype class对照表

    Extjs xtype集合

    在Extjs开发过程中,`xtype`(扩展类型)是极为重要的一个概念。它实际上是一种类型标识符,用于快速创建特定类型的组件实例。通过使用预定义的`xtype`值,开发者可以方便地构建出各种复杂的用户界面而无需编写大量...

    extjs中文api

    这是ExtJS中的核心类之一,用于定义和管理整个应用,包括启动、配置、管理组件树等关键任务。 #### 二、事件处理机制与代码示例 在ExtJS中,事件处理是非常重要的一个方面,它使得用户可以与页面元素进行交互。...

    EXtjs 图片批量上传

    在IT行业中,ExtJS是一个广泛使用的JavaScript库,用于构建富客户端Web应用程序。它提供了一整套组件和工具,包括表格、窗体、菜单等,帮助开发者创建功能丰富的、交互式的用户界面。本教程将深入探讨如何在ExtJS中...

    extjs中Ext.Panel和TreePanel 组件动态加载本地页面数据

    在EXTJS这个强大的JavaScript框架中,`Ext.Panel`和`TreePanel`是两个非常重要的组件,它们被广泛用于构建复杂的用户界面。这篇文章将探讨如何在这些组件中动态加载本地页面数据,以提升用户体验并实现灵活的数据...

    extjs资料大全

    - `ExtJs_xtype一览(转载).doc`:XType是ExtJS中定义组件类型的方式,这份文档可能详列了各种预定义的组件类型,帮助开发者快速查找和理解。 - `Ext常用属性总结.doc`:总结了ExtJS中常用的组件属性,对理解和配置...

    extjs 必填项目加*

    extjs 必填项目加*

    EXTJS讲解个人项目经历

    这使得在配置文件中可以通过xtype来创建和引用组件,而不是直接实例化。 7. **EXTJS组件分类**: - **基本组件**:如Box、Button、Panel、Progress Bar等,它们是构建复杂UI的基础。 - **工具栏组件**:如Toolbar...

    Extjs中常用表单介绍与应用

    在ExtJS中,xtype用于声明表单组件的类型。当你使用items来向表单面板添加组件时,可以通过xtype来指定具体的控件类型。例如,如果你想在表单中添加一个文本输入框,可以使用`xtype: 'textfield'`。常见的xtype包括...

    extjs中验证实例

    {xtype:"fieldset", width:500, labelAlign:"right", labelWidth:70, title:"个人信息" , collapsible:true, autoHeight:true, defaultType:"textfield", items:[ {fieldLabel:"姓名", //width:250, //...

    extjs中的formPanel以及表单的应用

    ExtJS 是一个强大的JavaScript 库,专用于构建富客户端应用程序,尤其在企业级Web应用中广泛应用。FormPanel 是 ExtJS 中的一个核心组件,用于创建和处理表单元素,包括输入字段、按钮、选择框等。它提供了丰富的...

    EXTJS 自定义combo控件

    xtype : 'jxcombo' //配置项 jxValueField:要获取值得字段名称,默认null //公共方法 getJXValue():返回自定义字段的值,如果没有自定义字段,则等价Ext.form.Combo类的getValue()方法

    ExtJS验证上传文件类型

    ExtJS 中实现文件上传功能是非常方便的,但对于新手来说,控制文件上传类型是一个难题。例如,我们只想让用户上传特定的文件类型,例如txt文件,那么如何实现当用户上传非txt文件时,给出错误提示呢?这篇文章将详细...

Global site tag (gtag.js) - Google Analytics