Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sencha touch Sencha Touch 2导航视图响应非常慢_Sencha Touch_Extjs_Sencha Touch 2_Sencha Architect - Fatal编程技术网

Sencha touch Sencha Touch 2导航视图响应非常慢

Sencha touch Sencha Touch 2导航视图响应非常慢,sencha-touch,extjs,sencha-touch-2,sencha-architect,Sencha Touch,Extjs,Sencha Touch 2,Sencha Architect,我是Sencha Touch 2的新手。我正在为Android 2.3.4构建PhoneGap+Sencha Touch 2应用程序。我完成了应用程序的开发。在测试该应用程序时,我发现我使用的导航视图在点击披露项时响应非常慢。 我使用的是列表容器视图、列表视图和编辑器视图。下面给出了它们的代码。 下面的代码工作得很好,但在打开“披露”项时,事件编辑器视图会在10秒后显示,有时我甚至不知道是否单击了它 所以我需要两方面的帮助: 1.当我点击披露项时,我应该显示屏蔽,以知道我至少点击了它 2.或者加

我是Sencha Touch 2的新手。我正在为Android 2.3.4构建PhoneGap+Sencha Touch 2应用程序。我完成了应用程序的开发。在测试该应用程序时,我发现我使用的导航视图在点击披露项时响应非常慢。 我使用的是列表容器视图、列表视图和编辑器视图。下面给出了它们的代码。 下面的代码工作得很好,但在打开“披露”项时,事件编辑器视图会在10秒后显示,有时我甚至不知道是否单击了它

所以我需要两方面的帮助: 1.当我点击披露项时,我应该显示屏蔽,以知道我至少点击了它 2.或者加快事件编辑器视图的显示

列表容器视图:

Ext.define('Sample.view.ListContainer', {
    extend: 'Ext.NavigationView',
    xtype:'listContainer',
    id: 'idListContainer',
    config: {
        id:'idIncidentListContainer',
        items:[

               {
                   xtype:"incidentsList",
                   cls: "clsHeader"
               }

           ]
    }
});
列表视图:

Ext.define("Sample.view.IncidentsList", {
    extend: "Ext.Panel",
    xtype: 'incidentsList',
    id: 'idIncidentList',
    requires:[
              'Ext.dataview.List',
              'Ext.data.proxy.Memory',
              'Ext.data.Store',
          ],
    alias:'widget.incidentslist',
    config: {
        id: 'idIncidentList',
        layout:'fit',
        items: [
        {
            xtype: "toolbar",
            docked: "top",
            ui:'light',
            id:"idHeaderTwo",
            cls:"clsHeaderTwo" ,
                items: [
                        {   xtype: 'title' ,
                            cls: 'clsLeftTitle',
                            title: "My Incidents",
                        },
                        { xtype: 'spacer'},
                        {   xtype: 'title' ,
                            cls: 'clsRightTitle',
                            id: 'idIncidentsListTitle',
                            title:"Welcome",
                        },
                        ]
        }, 
        {
            xtype: "list",
            store: "IncidentStore",
            itemId:"incidentsList",
            id:"inclist",
            loadingText: "Loading Incidents...",
            emptyText: "<div class=\"empty-text\">No incidents found.</div>",
            onItemDisclosure: true,
            itemTpl: Ext.create('Ext.XTemplate',
                    '<tpl if="TKT_STATUS_NAME == \'CLOSED\'">',
                    '<div class="vm_statusRed">',
                    '</tpl>',
                    '<tpl if="TKT_STATUS_NAME == \'OPENED\'">',
                    '<div class="vm_statusYellow">',
                    '</tpl>',
                    '<tpl if="TKT_STATUS_NAME == \'ASSIGNED\'">',
                    '<div class="vm_statusOrange">',
                    '</tpl>',
                    '<tpl if="TKT_STATUS_NAME == \'PENDING\'">',
                    '<div class="vm_statusRed">',
                    '</tpl>',
                    '<tpl if="TKT_STATUS_NAME == \'RESOLVED\'">',
                    '<div class="vm_statusOrange">',
                    '</tpl>',
                    '<tpl if="TKT_STATUS_NAME == \'REOPEN\'">',
                    '<div class="vm_statusYellow">',
                    '</tpl>',
                    '<div class="vm_dvList"><h4 class="vm_txtName"><span class="vm_listHeader"><label>Inci.#{TKT_ID} by </label><label class="vm_txtFirstName"><i>{FIRST_NAME:ellipsis(15, true)}</i></label></span><div class="date vm_clsDate">{CREATED_ON:date("d-M-y H:i")}</div></h4>',
                    '<div class="vm_title">{TKT_SUBJECT}</div>',
                    '<div class="vm_subDesc">{TKT_DESC}</div></div></div>'
                )       
        }],
        listeners: [
        {
            delegate: "#incidentsList",
            event: "disclose",
            fn: "onIncidentsListDisclose",
            loadingText: "Loading ...",
        },
        ]
    }, 
    initialize: function() {
        this.callParent(arguments);
        var getLoginData = localStorage.getItem('userData');
        var parseData = JSON.parse(getLoginData);
        var fname = parseData[0].FIRST_NAME;
        var getIncidentData = localStorage.getItem('userIncidentData');
        var parseIncidentData = JSON.parse(getIncidentData);
        Ext.getCmp("idIncidentsListTitle").setTitle("Welcome, " + fname);
        Ext.getStore("IncidentStore").setData(localStorage.userIncidentData).load();
    },
    onIncidentsListDisclose: function (list, record, target, index, evt, options) {
        console.log("editIncidentCommand");
        /*var list = Ext.getCmp('idIncidentList');
        list.setMasked({
            xtype:'loadmask',
            message:'Loading...'
        });*/
        this.fireEvent('editIncidentCommand', this, record);
    }
});
控制器:

Ext.define("Sample.controller.Incidents", {        
    extend: "Ext.app.Controller",
    config: {
        refs: {
            //lookup for views by xtype
            incidentsListView:'incidentslist',
            incidentEditorView: 'incidenteditorview', 
            incidentsList: 'incidentsList',
            listContainer:'listContainer'
        },
        control: {
            incidentsListView: {
                //commands fired by the Incidents list container.
                editIncidentCommand: "onEditIncidentCommand",
            },
        }
    },
    //Transitions
    slideLeftTransition: { type: 'slide', direction: 'left' },
    slideRightTransition: { type: 'slide', direction: 'right' },

    //Helper function(generates random integer)
    getRandomInt: function (min, max) {
        return Math.floor(Math.random() * (max - min + 1)) + min;
    },

    //Function to get incident details and set them to incidentview
    activateIncidentEditor: function (record) {
        var incidentContainer = this.getListContainer();
        var incidentEditorView = Ext.create("Sample.view.IncidentEditor");
        incidentEditorView.setRecord(record); // load() is deprecated.
        incidentContainer.push(incidentEditorView);            
    },

    //on edit incident command
    onEditIncidentCommand: function (list, record) {
        this.activateIncidentEditor(record);
    }
});
请帮帮我,伙计们。。。提前感谢

我也遇到同样的问题。将Sencha Touch 2编码为MVC格式使应用程序在旧硬件上的响应速度非常慢。尤其是安卓。这是HTML5与本机相比的缺点。尽管他们声称在手动构建库时性能会提高,但我几乎没有任何改进

在Android上,大多数基于性能的问题都与动画有关。尝试将“显示/隐藏动画”设置为“无”,然后查看是否有所改进。 您也可以尝试在控制器上设置onbackbuttonap和其他事件。这将改善页面的渲染分配。

我也遇到同样的问题。将Sencha Touch 2编码为MVC格式使应用程序在旧硬件上的响应速度非常慢。尤其是安卓。这是HTML5与本机相比的缺点。尽管他们声称在手动构建库时性能会提高,但我几乎没有任何改进

在Android上,大多数基于性能的问题都与动画有关。尝试将“显示/隐藏动画”设置为“无”,然后查看是否有所改进。
您也可以尝试在控制器上设置onbackbuttonap和其他事件。这将改善页面渲染分配。

我也有类似的问题,在我的情况下,解决方案是:


我有一个类似的问题,在我的案例中,解决方案是:


感谢Rae的快速回复!!!另一个示例Sencha应用程序导航视图似乎工作正常。。。我怀疑我写的代码是否有错误。。。你能回顾一下并给出你的反馈吗。。。同时我会尝试你的建议!!除了不将侦听器放在控制器中之外,您的代码编写方式与我习惯的方式相同。小优化:Ext.getCmpidIncidentsListTitle.setTitleWelcome,+fname;此.downidIncidentsListTitle.set。。。。应该更快,因为它查询的是组件而不是整个应用程序:您还可以尝试在应用程序启动时创建编辑器实例,并在公开和显示时简单地操作其中的数据。避免了公开事件集Ext.Viewport.setMasked{xtype:loadmask,message:Loading…}和Ext.Viewport.setMaskedfalse上屏蔽->页面的整体呈现。我没有使用控制器中提到的任何转换来推送事件编辑器视图。。。您能告诉我在启动时创建编辑器实例的确切含义吗?谢谢Rae。。我试过这个。downidIncidentsListTitle.setTitleWelcome,+fname。。它在初始化函数中运行良好。。但是Ext.Viewport.setMasked{xtype:loadmask,message:Loading…};和Ext.Viewport.setMaskedfalse不起作用。。实际上,我们什么时候应该在控制器中或在公开事件本身中将setMasked的值设置为false。。感谢您的建议和代码帮助…感谢Rae的快速回复!!!另一个示例Sencha应用程序导航视图似乎工作正常。。。我怀疑我写的代码是否有错误。。。你能回顾一下并给出你的反馈吗。。。同时我会尝试你的建议!!除了不将侦听器放在控制器中之外,您的代码编写方式与我习惯的方式相同。小优化:Ext.getCmpidIncidentsListTitle.setTitleWelcome,+fname;此.downidIncidentsListTitle.set。。。。应该更快,因为它查询的是组件而不是整个应用程序:您还可以尝试在应用程序启动时创建编辑器实例,并在公开和显示时简单地操作其中的数据。避免了公开事件集Ext.Viewport.setMasked{xtype:loadmask,message:Loading…}和Ext.Viewport.setMaskedfalse上屏蔽->页面的整体呈现。我没有使用控制器中提到的任何转换来推送事件编辑器视图。。。您能告诉我在启动时创建编辑器实例的确切含义吗?谢谢Rae。。我试过这个。downidIncidentsListTitle.setTitleWelcome,+fname。。它在初始化函数中运行良好。。但是Ext.Viewport.setMasked{xtype:loadmask,message:Loading…};
和Ext.Viewport.setMaskedfalse不起作用。。实际上,我们什么时候应该在控制器中或在公开事件本身中将setMasked的值设置为false。。谢谢你的建议和代码帮助…你能为答案添加一些解决方案吗
Ext.define("Sample.controller.Incidents", {        
    extend: "Ext.app.Controller",
    config: {
        refs: {
            //lookup for views by xtype
            incidentsListView:'incidentslist',
            incidentEditorView: 'incidenteditorview', 
            incidentsList: 'incidentsList',
            listContainer:'listContainer'
        },
        control: {
            incidentsListView: {
                //commands fired by the Incidents list container.
                editIncidentCommand: "onEditIncidentCommand",
            },
        }
    },
    //Transitions
    slideLeftTransition: { type: 'slide', direction: 'left' },
    slideRightTransition: { type: 'slide', direction: 'right' },

    //Helper function(generates random integer)
    getRandomInt: function (min, max) {
        return Math.floor(Math.random() * (max - min + 1)) + min;
    },

    //Function to get incident details and set them to incidentview
    activateIncidentEditor: function (record) {
        var incidentContainer = this.getListContainer();
        var incidentEditorView = Ext.create("Sample.view.IncidentEditor");
        incidentEditorView.setRecord(record); // load() is deprecated.
        incidentContainer.push(incidentEditorView);            
    },

    //on edit incident command
    onEditIncidentCommand: function (list, record) {
        this.activateIncidentEditor(record);
    }
});