iOS 13 下网页点击事件又出现了类似 300ms 的延迟,有大佬知道是什么原因吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
anjianshi
V2EX    问与答

iOS 13 下网页点击事件又出现了类似 300ms 的延迟,有大佬知道是什么原因吗?

 
  •   anjianshi 2019-09-24 11:15:44 +08:00 3526 次点击
    这是一个创建于 2211 天前的主题,其中的信息可能已经有所发展或是发生改变。

    无论是 touchstart 还是 click 都会有延迟;并且快速点击 10 次,大约只会生效 5 ~ 6 次。
    iOS 12 下就不会。 会不会和新加的触感触控有关?

    <!doctype html> <meta name="viewport" cOntent="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no,viewport-fit=cover" /> <div id="app"> <div class="count-wrap"> <div>当前数量:<span id="num"></span></div> <div id="btn">更新数量</div> </div> </div> <script> var i = 0 function setNum() { document.getElementById('num').innerHTML = i } setNum() document.getElementById('btn').Onclick= function() { i += 1 setNum() } </script> <style> * { margin: 0; padding: 0; } #app { padding: 20px; } .count-wrap { margin-top: 40px; } #btn { width: 6em; padding: 0.3em; border: 1px solid #ccc; border-radius: 2px; text-align: center; margin-top: 1em; background-color: #f0f0f0; /* -webkit-tap-highlight-color: transparent; */ user-select: none; } #btn:active { background-color: #fafafa; } </style> 
    14 条回复    2019-09-24 17:32:57 +08:00
    anjianshi
        1
    anjianshi  
    OP
       2019-09-24 11:47:38 +08:00
    unifier
        2
    unifier  
       2019-09-24 12:16:41 +08:00
    好像确实有类似的情况,我的感觉是有时候点链接一次没效果,得点第二次才能开始打开新网页
    oIMOo
        3
    oIMOo  
       2019-09-24 15:16:07 +08:00   1
    慢速点击(两次间隔较长)没有问题。
    然而快速点击就会复现。
    redbuck
        4
    redbuck  
       2019-09-24 16:11:57 +08:00   1
    加 touch-action: manipulation; 试试
    anjianshi
        5
    anjianshi  
    OP
       2019-09-24 16:43:04 +08:00
    @redbuck 加了没有效果

    ```css
    #btn { touch-action: manipulation; }
    ```
    redbuck
        6
    redbuck  
       2019-09-24 17:07:13 +08:00
    看了下你的 demo,这个测试不太合理啊.

    试试这个.
    我测试是不存在 300ms 延迟的.

    点击齿轮可以打开控制台

    ```html
    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <meta name="viewport" cOntent="width=device-width,initial-scale=1.0,user-scalable=no">
    <script type="text/Javascript" src="https://cdnjs.cloudflare.com/ajax/libs/eruda/1.5.8/eruda.min.js"></script>
    <title>Title</title>
    </head>
    <body>
    <button id="btn">点击</button>

    <script type="text/Javascript">
    eruda.init();
    const btn = document.getElementById('btn');

    btn.addEventListener('touchstart', function () {
    console.time('click');
    });

    btn.addEventListener('click', function () {
    console.timeEnd('click');
    });
    </script>
    </body>
    </html>

    ```
    anjianshi
        7
    anjianshi  
    OP
       2019-09-24 17:18:02 +08:00
    @redbuck touchstart 本身都被延迟触发了的。这个和以前的 300ms 情况不太一样。
    我的那个演示页面,ios12 下,连续点击 10 下计数就是 10,ios13 下就是 5
    anjianshi
        8
    anjianshi  
    OP
       2019-09-24 17:22:17 +08:00
    http://anjianshi.net/touch3.html
    这个版本改成监听 touchstart 了
    redbuck
        9
    redbuck  
       2019-09-24 17:28:34 +08:00
    @anjianshi 300 毫秒延迟一般就是指 click 比 touchstart 晚 300ms.

    不过你说的问题也是存在.感觉事件被节流了,点再快都按固定频率输出
    chairuosen
        10
    chairuosen  
       2019-09-24 17:29:02 +08:00
    实验了,是真的
    redbuck
        11
    redbuck  
       2019-09-24 17:29:52 +08:00
    @anjianshi 不是 300ms 延迟应该不会影响正常页面,对网页游戏之类的可能才有影响
    icanfork
        12
    icanfork  
       2019-09-24 17:31:40 +08:00   1
    iOS 13.1 已经修好了
    anjianshi
        13
    anjianshi  
    OP
       2019-09-24 17:31:57 +08:00
    嗯。影响不是很大,不过像数字小键盘之类的组件点起来会有点卡。
    anjianshi
        14
    anjianshi  
    OP
       2019-09-24 17:32:57 +08:00
    @belin520 哦哦哦,那明天升级试试看!
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5564 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 09:01 PVG 17:01 LAX 02:01 JFK 05:01
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86