【发布时间】:2012-03-25 03:12:09
【问题描述】:
我专门为 iPad 设备(移动 Safari)开发了一个 HTML5 网络应用程序。在我看来,与原生 iOS 应用程序上的按钮和手势相比,应用程序中的 HTML 按钮和点击事件有些反应迟钝。有没有其他人注意到这个现象?有没有人对为什么会发生这种情况以及如何使这些按钮更具响应性有任何智慧?谢谢。
【问题讨论】:
标签: ios ipad html user-interface mobile-safari
我专门为 iPad 设备(移动 Safari)开发了一个 HTML5 网络应用程序。在我看来,与原生 iOS 应用程序上的按钮和手势相比,应用程序中的 HTML 按钮和点击事件有些反应迟钝。有没有其他人注意到这个现象?有没有人对为什么会发生这种情况以及如何使这些按钮更具响应性有任何智慧?谢谢。
【问题讨论】:
标签: ios ipad html user-interface mobile-safari
Enabling CSS active pseudo styles in Mobile Safari 使可点击元素更具响应性。 并且谷歌有一个文件:"Creating Fast Buttons for Mobile Web Applications" 它说“Touchend 事件被无延迟地触发,因此这比点击事件快得多,但是有一些问题需要考虑:”但我没有意识到 IOS 上的点击或点击事件之间的速度差异。
此外,性能取决于设备、IOS 版本和 Web 应用程序的呈现类型(在 safari、作为主屏幕 Web 应用程序或 UIWebView 中),这也会影响响应能力。在http://thetechjournal.com/electronics/iphone/report-ios-5-browser-performance-test.xhtml查看性能图表
【讨论】:
我知道这是一个老问题,已经有一个公认的答案,但我正在研究一个类似的问题,我找到了我的问题的答案。希望这可以帮助其他一些人,他们可能通过 Google 搜索来到这里,并发现接受的答案并没有真正提供您需要的所有信息。
我在这里找到了我的问题的解决方案...
http://developer.telerik.com/featured/300-ms-click-delay-ios-8
如果该链接出现问题,其要点是移动浏览器故意将点击事件的触发延迟 300 毫秒,因此他们可以判断该手势是否真的是双击缩放而不是常规点击。
对于 Chrome / Firefox / IE 有不同的内置解决方案,但对于 Safari 确实没有内置解决方案;相反,您可以使用“快速单击”javascript 库,通过监听 touchend 事件而不是单击事件来避免 300 毫秒的延迟。我确实意识到接受的答案简要地提到了 touchend 事件,但它并没有真正解释为什么需要这样做。
所以你有它 - 如果您遇到类似的问题,请尝试搜索“快速点击”库,或按照我链接到的那个博客上的建议进行操作。希望这会有所帮助。
【讨论】: