为啥 Android 原生 HTML5 日期选择器上的 Chrome 变得非常慢?
Posted
技术标签:
【中文标题】为啥 Android 原生 HTML5 日期选择器上的 Chrome 变得非常慢?【英文标题】:Why has Chrome on Android's native HTML5 date picker become really slow?为什么 Android 原生 HTML5 日期选择器上的 Chrome 变得非常慢? 【发布时间】:2015-07-29 23:34:04 【问题描述】:我的网站上有一个日期选择器,它只使用默认的 html5 日期选择器。
我注意到,直到几周前,它都运行良好,但自从 Chrome android 最近更新以来,他们引入了一个新的日期选择器,这个日期选择器真的很慢而且反应迟钝。加载需要几秒钟,我发现很难选择任何日期。
我有一个演示站点 (http://datapickerandroid.meteor.com/)。我已经在 Nexus 7 2013 和 HTC one M8 和 Android 上的 Chrome 上测试过它都有这个问题。我还用 dolphin 和 firefox 以及桌面浏览器对其进行了测试,它们看起来很好,所以看起来这是 chrome 上的日期选择器的问题。
我想知道发生了什么事? Chrome Android 中是否只有一个错误?它只发生在我的设备上吗?我是否以不正确的方式声明我的日期选择器?是否可以向浏览器指定我想使用旧的日期选择器?我也在使用 Meteor(虽然在演示中,我删除了所有非默认包),这可能与此有关吗?
【问题讨论】:
【参考方案1】:见crbug.com/441060。您可以通过指定 min= 和 max= 属性来避免这种缓慢。
【讨论】:
哇,谢谢!我刚刚指定了 min='0001-01-01' 和 max='9999-12-31' 并且它又快了。不敢相信在如此广泛使用的应用程序中存在这个错误 我认为链接不再存在。【参考方案2】:要了解更多信息,我做了一些设置无最小值/最大值、仅最大值以及最小值和最大值的操作。每个都有不同的行为/表现。
没有最小值或最大值 - 在 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 允许的最低年...
【讨论】:
以上是关于为啥 Android 原生 HTML5 日期选择器上的 Chrome 变得非常慢?的主要内容,如果未能解决你的问题,请参考以下文章
从 iOS/Android 上的 Web 应用调用本机日期选择器