## 掌握刷新方法
iScroll需要知道包裝器和滾動器確切的尺寸,在iScroll初始化的時候進行計算,如果元素大小發生了變化,需要告訴iScroll DOM發生了變化。
下面將提供調用`refresh`方法的正確時機。
每次觸摸DOM,瀏覽器渲染器重繪頁面。一旦發生了重畫我們可以安全地讀新的DOM屬性。重新繪制階段不是瞬時發生的只是范圍結束時觸發。這就是為什么我們需要給渲染器刷新iScroll之前一點時間。
為了確保javascript得到更新后的屬性,應該像下面的例子這樣使用刷新方法:
~~~
ajax('page.php', onCompletion);
function onCompletion () {
// Update here your DOM
setTimeout(function () {
myScroll.refresh();
}, 0);
};
~~~
這里調用`refresh()`使用了零秒等待,如果你需要立即刷新iScroll邊界就是如此使用。當然還有其他方法可以等待頁面重繪,但零超時方式相當穩定。
> 如果你有一個相當復雜的HTML結構,你應該給瀏覽器更多的執行事件,可以設置100到200毫秒的超時時間。
>
> 這通常適用于所有任務必須在DOM上進行。通常給渲染器一些執行的時間。