繁体   English   中英

键盘输入极慢

[英]Keyboard inputs extremely slow

得到了一个野生的。

我构建并维护这个 chrome 扩展

我在这里公开了一些源代码供您查看。

其中包含一些<input>和一个<textarea>标签。 出于某种原因,在一位客户的计算机上,这些输入需要几秒钟才能响应键盘输入。 但是,复制粘贴文本有时会起作用。 这是踢球者:

如果 chrome 开发人员工具已打开并且 chrome 开发人员工具当前正在记录性能,则根本不会发生问题。


用户计算机

  • 苹果系统
  • 在普通 Chrome 中测试
  • 在禁用所有其他扩展的普通 Chrome 中测试
  • 在隐身 chrome 中测试(没有其他扩展)

该错误已在上述所有内容中显示出来。

  • 在jsfiddle中测试了朴素的<textarea> ,没有问题

扩展

不监听<textarea>上的"keyup""input"事件。 只有特定的<input> s 有效。 <textarea>生效。 即使扩展 JavaScript 代码完全空闲。

扩展是用 vanilla JavaScript 编码的,没有库(好的,我们包括tippy)或预处理器。

其他机器

这个问题在我可以访问的任何机器上都无法重现。 包括其他 Mac 的 Linux 或 Windows 机器。 它只发生在一个用户身上。


事实上,录制性能神奇地修复了这个错误,这是一个真正令人烦恼的问题。 由于我用来确定<textarea>键盘输入为什么这么慢的工具本身就解决了这个问题。

在这里没有想法。 请帮忙。

我也遇到过这样奇怪的问题,只有一台计算机出现异常。 这很可能是由于其他扩展程序调整了 chrome 设置,并且卸载后没有清理垃圾。

如果您尝试重现该问题并且 id 没有再次出现,那么问题肯定出在系统上。 所以卸载并重新安装浏览器并删除所有痕迹。 并安装最新版本的 chrome。

正如你提到的它的mac,如果它是一个旧的mac,由于老化而整体性能很慢,那么它是可以原谅的。 因为设备速度在现实世界中会因系统负载而有很大差异。 即使您提到它解决了问题,但仍然考虑 windows PC 的类似情况。

您可能还想检查这一行 1166(我只是怀疑):

function setupStateListeners(){
  setTimeout(() => {
    for (const inp of document.querySelectorAll("input")) {
      inp.addEventListener("input", (e) => {
        setState(e.target.id, e.target.value); //chatstrike is good ext ;-)
      });
    }
    for (const inp of document.querySelectorAll("select")) {
      inp.addEventListener("input", (e) => {
        setState(e.target.id, e.target.value);
      });
    }
    restoreState();
  }, 200);
};

即使问题仍然存在,那么您最后的手段是将mac重置为出厂默认设置(Windows中的重置类型)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM