2011-09-23 26 views
1

民间,在容器DIV的调整过程中隐藏iframe会加快响应速度?

我有一个包含一些IFrames(长故事)的DIV。 DIV可以由用户调整大小,并且iFrame随着它改变大小。然而,调整大小的过程是缓慢而波涛汹涌,大小在“爆发”中变化。

在调整速度期间会隐藏iFrames吗?

是否有临时隐藏iFrame的最佳做法?我似乎记得其他人在其他地方建议隐藏它们的方法稍有异国情调,但我不记得原因。

感谢, 安L.

回答

1

解决此问题的一种方法是不对resize事件执行实际调整大小(由于经常调用它会导致choppiness),而是在resize上设置一个计时器并仅执行实际当窗口大小一秒钟或两秒未改变时调整大小。然后,用户可以自由调整窗口的大小,当他们停下来时,它可以放置内部没有任何中间的碎片。在一般情况下,它的工作原理是这样的:

var resizeTimer = null; 

function doActualResize() { 
    resizeTimer = null; 
    // do your window interior resize here 
    // won't get called more than once per second because of timer 
} 

window.onresize = function() { 
    // clear any prior timer that hasn't fired yet 
    if (resizeTimer) { 
     clearTimeout(resizeTimer); 
    } 
    // set new timer to wait for 1 second of no further resize motion 
    resizeTimer = setTimeout(doActualResize, 1000); 
} 
+0

它不是调整窗口大小。 – rlemon

+0

然后,只要将相同的概念应用于通知div大小调整的任何事件。 – jfriend00

+0

@ jfriend00感谢您的回复。布局全是自动的,用百分比宽度和高度来完成,所以没有程序化布局。所以我相信我在运行div大小调整(也发生)的窗口大小调整的情况下运气不佳。但是当div被手动调整大小时,我至少可以推迟调整大小。谢谢! –

1

有屏幕上的少,更快的回流。如果您可以隐藏元素,直到完成复杂的DOM更改,则最终会强制重新绘制,但中间步骤应该更快。