`
liuhd2010
  • 浏览: 147901 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

Sencha touch 2通过Ext.ComponentQuery.query查找组件

 
阅读更多

    在做Sench touch开发时,想要获取某个组件并对其操作,通常使用Ext.getCmp('id');该方式是在整个DOM文档中进行查询,后来发现随着项目的进行,使用的组件愈多,这种方式势必影响查询效率,于是想使用一种更好地方式来查询组件以替代Ext.getCmp()。

   现有一种方式可实现这种目的:

   如:创建一组件

   {

       xtype: 'button'

       itemId : 'buttonItemId',

   }

   通过Ext.ComponentQuery.query()获取组件:

   var comp = Ext.ComponentQuery.query("button[itemId='buttonItemId']")[0];   

    //Ext.ComponentQuery.query()返回的是控件数组,[0]返回的是该控件

    //[注:有关Ext.ComponentQuery.query()方法使用查看Sencha touch API文档]

 

    另外,还有一种方法获取组件,且效率较高:

    先通过Ext.ComponentQuery.query(),获取组件所在页面。

    var view = ComponentQuery.query('component_xtype'),  // component_xtype页面类型

    若要查找该页面id为:buttonId的组件,可用下面方法:

    var comp2 = view.down('#buttonId');

    通过这种方式查询组件,首先其范围限制到该组件所在的页面里,所以查询效率高。

   

分享到:
评论
1 楼 cjpx00008 2014-04-02  
sencha touch中getCmp其实是组件查找中最效率的,读过源码的话就知道,sencha touch在定义视图组件的时候会在componentManager中给每个组件注册一个id,并将组件保存在一个map对象中,id就是这个对象的属性,而组件对象就是这个属性的值,getCmp(id)所做的操作就是调用map[id],这样就直接得到了组件对象的值,对象的属性访问在js中时相当效率的,

相反,Ext.ComponentQuery.query()才是要在内存中遍历所有组件对象,效率相对getCmp来说要差很多

相关推荐

    Sencha Touch 实战转曲.pdf

    Sencha Touch 实战转曲.pdf 移动开发webapp.

    sencha-touch-1.0.1a.zip_Sencha Touch _sencha touch api_touch

    5. **命令式编程**:Sencha Touch 使用基于Ext JS的命令式编程风格,通过配置对象来定义组件行为。 深入学习Sencha Touch 1.0.1a,你将掌握如何创建响应式的布局、实现动态数据加载、处理用户触摸事件等技能。同时...

    sencha-touch-2.x jsb文件 支持2.4

    Sencha Touch 2.x 是一个流行的JavaScript框架,用于构建移动Web应用程序。它的核心特性在于提供了一套丰富的组件和API,让开发者能够创建交互性强、性能卓越的触屏应用。在给定的标题和描述中,重点是使用"sencha-...

    sencha touch动态加载组件

    在需要加载某个组件时,可以通过ComponentQuery查找并显示它,而不是一次性加载所有组件。 3. **动态加载模型和存储(Model and Store)**:在处理大量数据时,可以使用分页或者懒加载策略。当用户滚动到数据列表...

    sencha touch2 ajax 获取数据

    Sencha Touch2是一个用于构建高性能、跨平台的移动应用的JavaScript库,它专注于触摸设备上的用户体验,提供了一系列丰富的UI组件和工具,使得开发者能够快速地创建出美观且功能强大的移动应用。 ### Sencha Touch2...

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

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

    Sencha.Touch.in.Action(2013.7)

    Sencha.Touch.in.Action(2013.7)

    touch-docs-2.2.1.zip(senchaTouch 离线API参考文档)

    Sencha Touch 是一款专为移动设备开发的前端框架,它提供了丰富的组件和API,使得开发者可以轻松构建跨平台的触控应用。这个压缩包“touch-docs-2.2.1.zip”包含了Sencha Touch 2.2.1版本的离线API参考文档,对于...

    sencha.js sencha.css

    通过结合sencha.js和sencha.css,开发者可以构建出具有原生感观的移动应用。 学习Sencha,开发者需要掌握JavaScript基础,理解MVC(Model-View-Controller)设计模式,以及如何利用Sencha的数据管理和远程通信功能...

    Ext.ux.SwfUploadPanel.js

    首先,`ExtJS`(全称为EXT JavaScript Library)是由Sencha公司开发的一个强大的JavaScript框架,用于构建桌面和移动Web应用。它提供了丰富的组件库,包括表格、面板、窗口、菜单等,帮助开发者快速构建用户界面。 ...

    EXT dojochina文本框示例Ext.form.TextField.rar

    EXT是Sencha公司开发的一款强大的JavaScript前端框架,主要用于构建富客户端Web应用。Dojo China社区是一个专注于JavaScript技术,特别是Dojo Toolkit和EXT JS等技术的交流平台。在本示例中,"EXT dojochina文本框...

    sencha touch环境配置.

    Sencha Touch 是一款用于构建移动Web应用程序的框架,它提供了丰富的UI组件和强大的数据管理功能。在开始使用Sencha Touch之前,需要进行一系列环境配置,确保所有必要的软件和工具已经安装并配置妥当。 首先,我们...

    Ext.ux.touch.grid-master.rar

    这个压缩包包含的是EXTJS Touch框架的一个扩展组件,EXTJS Touch是Sencha公司开发的一个轻量级、高性能的前端框架,用于构建跨平台的移动Web应用。 EXTJS Touch 提供了一套完整的UI组件,包括表格、按钮、滑块、...

    一个完整的sencha touch 应用案例

    2. **sencha-touch-all.js**:这是Sencha Touch的完整构建,包含所有组件和功能。在开发阶段,为了方便调试,我们通常使用此文件;但在生产环境中,为了优化性能,我们会使用按需加载的精简版(如sencha-touch.js)...

    ExtJS 3.4.0中的 ext.jsb2 文件

    在使用`ext.jsb2`时,通常会结合Sencha CMD(Sencha Command)工具,这是一个命令行工具,为ExtJS和Sencha Touch应用提供自动化构建流程。通过Sencha CMD,你可以使用`ext.jsb2`中的信息来生成一个优化过的...

    Ext.ux.touch.DateTimePicker:扩展 Ext.Picker 以提供 DateTime 功能的 Sencha Touch 插件

    Ext.ux.touch.DateTimePicker 该扩展通过扩展 Ext.Picker 为 Sencha Touch 框架提供了一个 DateTimePicker。用法datetimePicker = new Ext.ux.touch.DateTimePicker({ useTitles: true, id: 'dt', value: { day: 23,...

    sencha-touch-2.1.1-gpl.zip

    Sencha Touch 2.1.1版本在前一版本的基础上进行了优化和增强,提高了性能,提供了更多的功能和组件。以下是一些关键知识点: 1. **响应式设计**:Sencha Touch 2.1.1支持各种屏幕尺寸和设备类型,能自动调整布局以...

    Sencha_touch_开发指南.doc

    ### Sencha Touch 开发指南知识点解析 #### 一、Sencha Touch 概述 - **定义**:Sencha Touch 是一款专为移动设备设计的 JavaScript 框架,旨在帮助开发者构建高性能、接近原生应用体验的 Web 应用。 - **特性**:...

    Ext.js 6 示例学习

    "Ext.JS6ByExample.pdf"很可能是一本基于实例的教学手册,通常这样的书籍会通过具体的代码示例来解释Ext.js 6的各种功能和组件的用法。读者可以通过这些例子了解如何创建组件,如表格、表单、树形视图、图表等,以及...

Global site tag (gtag.js) - Google Analytics