为什么 Android 的原生 HTML5 日期选择器上的 Chrome 变得非常慢?

Why has Chrome on Android's native HTML5 date picker become really slow?

我的网站上有一个日期选择器,它只使用默认的 html5 日期选择器。

我注意到,直到几周前,它还运行良好,但自从最近 Chrome Android 更新以来,他们引入了一个新的日期选择器,这个日期选择器真的很慢而且反应迟钝。加载需要几秒钟,我发现很难选择任何日期。

我有一个演示网站 (http://datapickerandroid.meteor.com/)。我已经在 Nexus 7 2013 和 HTC one M8 上测试过,Android 上的 Chrome 都有这个问题。我还用 dolphin 和 firefox 以及桌面浏览器对其进行了测试,它们看起来不错,所以看起来 chrome.

上的日期选择器有问题

我想知道发生了什么事? Chrome Android 中是否只有一个错误?它只发生在我的设备上吗?我是否以错误的方式声明了我的日期选择器?是否可以向浏览器指定我想使用旧的日期选择器?我也在使用 Meteor(虽然在演示中,我删除了所有非默认包),这可能与此有关吗?

参见 crbug.com/441060。您可以通过指定 min= 和 max= 属性来避免这种缓慢。

为了获得更多信息,我做了一些尝试,不设置 min/max、仅设置最大值、最小值和最大值。每个都有不同的behaviour/performance.

没有最小值或最大值 - 单击 Android 会非常慢

<input type="date">

仅限最大值 - 单击 Android 会将您的默认值设置为 01/01/0001 - 第一天。 没用

<input type="date" max="1979-12-31">

最小值和最大值 - 默认日期是今天,加载速度非常快!

<input type="date" min="0001-01-01" max="9999-12-31" >

https://jsfiddle.net/gpjc3xam/16/


更新

对于将此解决方案与 Angular 一起使用的任何人,请注意最小日期为 0001 年 will not work。看来 100 年是最低的 Javascript 将允许...