我有一个 Sencha Touch 应用程序,带有一个简单的面板。
var scrolling = new Ext.Application({
launch : function () {
var titlebar = {
dock : 'top',
xtype : 'toolbar',
title : 'Scrolling Test'
};
new Ext.Panel({
fullscreen : true,
id : 'panel',
scroll : {
direction : 'vertical',
eventTarget : 'parent'
},
dockedItems : [titlebar],
styleHtmlContent : true,
html : ''
});
}
});
该面板填充了 Ext.Ajax.request 响应。
Ext.Ajax.request({
url : 'largefile.html',
success : function (response) {
Ext.getCmp('panel').update(response.responseText);
},
failure : function (response) {}
});
响应包含大约 1.6 MB 的文本。是的,内容太多了。但是,当我尝试在 ipad 1 中运行它时,面板加载后,滚动效果运行不顺畅。它冻结 1~2 秒,滚动一下,再次冻结,然后完成。
我试图测量面板的 fps,使用
panel.scroller.getLastActualFps();
在 Chrome 浏览器上,方法返回 ~ 60 fps。在 iPad 上,方法返回 ~0.25 fps。
我正在考虑构建一个“精简”滚动组件,禁用许多事件和侦听器。你怎么看?Scroller 组件对于大内容居然有这个问题?