У меня есть приложение 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 МБ текста. Да, это слишком много контента.
Тем не менее, когда я пытаюсь запустить его в Ipad 1, после загрузки панели, эффект прокрутки не работает гладко. Он останавливается на 1 ~ 2 секунды, немного прокручивается, снова останавливается и затем завершается.
Я попытался измерить fps панели, используя
panel.scroller.getLastActualFps();
В браузере Chrome метод возвращает ~ 60 кадров в секунду. На iPad метод возвращает ~ 0,25 кадров в секунду.
Я думал о создании «облегченного» компонента скроллера, отключающего много событий и слушателей. Как вы думаете? Компонент Scroller на самом деле имеет эту проблему для большого контента?