2011-08-09 37 views
0

我有一個Sencha觸摸應用程序,一個簡單的面板。問題與滾動組件和Sencha觸摸大內容

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幀。在iPad上,方法返回〜0.25 fps。

我想構建一個'精簡版'滾動組件,禁用了很多事件和聽衆。你怎麼看? Scroller組件實際上對於大型內容有這個問題?

+0

會發生什麼事,如果你有'勢頭:FALSE'在您的滾動配置? – chrixian

回答

0

我有同樣的問題,發現默認fps(幀每秒)的間隔爲80!對於iOS而言,這意味着sencha scroller每秒運行setInterval(someDecelerationAndBouncingFunction,1000/80)80次。

我建議嘗試更少的fps選項。說25

scroll : { 
      direction : 'vertical', 
      eventTarget : 'parent', 
      fps : 25, 
     }, 

在我的情況下,它解決了問題。

順便說一句,同樣的問題,我與iScroll和TouchScroll ...