在我的网络应用程序中,我使用iframe
来嵌入内容。用户可以使用锚链接与iframe交互,这会导致iframe的内容重新加载。
我注意到在WebKit(Chrome或Safari)上,iframe“闪烁”,特别是在慢线上。显然,闪烁是由于在加载新内容之前清除iframe引起的。在相同条件下,其他浏览器不会发生这种情况,例如FF或IE。此外,如果我在新的单独的浏览器选项卡中打开iframe的内容,在这种情况下UI不会闪烁,因此闪烁似乎确实是由iframe引起的。
我在这里发了一个例子: http://www.genprofi-stammbaum.net/test/iframes.html
点击iframe中的链接会导致Chrome上出现闪烁,如果该行受到限制,则会越多,例如在Fiddler中使用“模拟调制解调器速度”。
场景非常简单,主页是:
<html>
<head>
</head>
<body>
<iframe src="iframe-content.php">
</iframe>
</body>
</html>
iframe的内容是
<html>
<head>
<style>
a, a:visited {color: blue}
</style>
</head>
<body>
<a href="<?php print "iframe-content.php?a=".time(); ?>">
<?php print "link_".time(); ?>
</a>
</body>
</html>
在绘制内容之前,有什么方法可以阻止WebKit清除iframe吗?