Safari隐藏选择导致输入减速

时间:2013-11-26 17:17:48

标签: performance select input safari hidden

JSFiddle:http://jsfiddle.net/vJqy6/7/

HTML:

<form method="post" action="#">
    <div id="hiddenfields" style="display: none">

    </div>
    <input type="text" name="laggy" />
    <input type="text" name="fine" />
</form>

Javascript(易于生成):

for(var i = 0; i < 10; i++) {
    $('#hiddenfields').append('<div><select name="hidden' + i + '"></select></div>');   
}

for(var i = 0; i < 200; i++) {
    $('#hiddenfields select').append('<option value="' + i + '">' + i + '</option>');
}

在safari 6.1(在Mac上)由于隐藏的选择元素,我得到了奇怪的行为。 我发现如果我在表单中的隐藏div中有一堆大的选择字段,那么第一个非隐藏文本输入具有非常滞后的输入。

要测试小提琴,只需尝试在右下角的第一个文本输入中键入任何文本,它应该很慢并且每隔几秒显示一个字符。如果增加选项计数,则可以强制减速变得更糟,与选择计数相同。输入第二个文本输入可以正常工作!

我的测试是在OS X版本10.8.5上进行的

如果我从Web检查器执行javascript配置文件,我会遇到某些方法,这些方法看起来像基于浏览器的大型减速器(请注意,此屏幕截图不是来自jsfiddle的测试): JS Profile

此问题不是旧版本的safari,并且不会发生在chrome,firefox,IE中。我现在用铬打开它,它像黄油一样光滑

这让我相信它可能是safari 6.1中的一个错误

  • 关于如何解决这个问题的任何想法?
  • 这看起来像浏览器错误吗?

1 个答案:

答案 0 :(得分:0)

与Apple创建了一个错误,最终将其标记为另一张彩票的副本。我无法使用他们的bug工具查看其他票证。另一张票是关闭的,所以如果它是一个实际的错误,那么它可能在他们的开发版本中修复,或者它也可能是“不是一个bug”