【问题标题】:fastclick still has 300ms delay on ipadfastclick 在 ipad 上仍有 300ms 延迟
【发布时间】:2015-01-21 17:02:51
【问题描述】:

我有一个带有 fastclick 的 Angular 应用程序,因此它可以在平板电脑上快速响应。在 iOS8 中,我们看到点击延迟,因此我将 iPad Mini 连接到 Safari 开发工具,并看到 Touch End Event 和 Click Event Dispatched 之间有 300 毫秒的延迟。我去创建一个 jsfiddle 来测试它,而不用我的应用程序的其余部分,发现这个已经创建了:

http://jsfiddle.net/billymoon/zrMxL/

new FastClick($("#fast")[0]);
angular.module('MyApp', ['ui.bootstrap']);

function EditingPageCtrl($scope) {
    $scope.radioModelA = undefined;
    $scope.radioModelB = undefined;
    $scope.fast1 = "this field works quickly, because of fastclick...";
    $scope.fast2 = "this field is slow, because no fastclick";
    $scope.$watch('radioModelA', function (newValue, oldValue) {
        //alert(newValue);    
    });
}

我也将那个连接到 Safari 开发者工具,但仍然看到 300 毫秒的延迟。这个 jsfiddle 是否演示了 fastclick 的正确使用,如果是,是否有原因导致它仍然存在延迟?

【问题讨论】:

    标签: fastclick.js


    【解决方案1】:

    这不是 Angular 风格的,但请尝试将其添加到脚本的顶部。

    window.addEventListener('load', function() {
        FastClick.attach(document.body);
    }, false);
    

    这在 Angular 应用程序中对我有用。

    【讨论】:

    • 感谢您的注意 - 是的,我们的应用程序已经使用了这种方法。我最终删除了 jquery,这有所帮助,因为我们在 angular 和 jquery 方面都遇到了一些问题。此外,在将 Yosemite 与附加到 iOS 8 设备的 Safari Debug 一起使用时,设备的响应速度比未附加时要慢得多。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多