This question's answers建议使用 window.setInterval 作为立即检测(无需等待模糊)文本框内容是否更改的唯一可靠方法,因为某些文本框更改可能通过按键以外的事件发生。
即使在我的台式电脑上,我也看到 IE 或 Firefox 通过 500 毫秒的 setInterval 运行一个相对简单的处理程序检查几个文本框,从而消耗了相当大的 CPU 百分比。这在台式电脑上没问题,但在笔记本电脑和手机上会损害电池生命周期。
使用 jquery 最大限度地减少 CPU 利用率但仍然提供快速更新以响应文本框的更改(包括剪贴板粘贴、ajax 更新等,而不仅仅是按键)的好方法是什么?
最佳答案
onBlur
是指您离开某个对象但不一定对其进行更改。
onChange
仅在您离开已更改其值的对象后才会调用。
其中之一应该可以满足您的需求。如果没有,每次字符更改都会触发各种按键事件。
如果不这样做,那么定期更新单个 JavaScript 变量可能不会像您所说的那样占用那么多处理能力,除非您的选择器导致一些奇怪的 DOM 行为。
试试这个:通过 id 引用元素,并将该引用存储在 js 变量中。通过此引用更新和更改另一个变量是一个微不足道的操作。
关于jquery - 检测文本框内容是否已更改的电池友好方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8976340/