电池友好的方式来检测文本框的内容是否已更改

时间:2012-01-23 18:01:51

标签: jquery power-management mobile-browser

This question's answers建议使用window.setInterval作为唯一可靠的方法来立即检测(不等待模糊)文本框的内容是否发生更改,因为某些文本框更改可能通过按键以外的事件发生。

即使在我的台式电脑上,我也看到IE或者用一个500毫秒的setInterval运行一个非常微不足道的CPU,并且运行一个相对简单的处理程序来检查几个文本框。这在桌面PC上是可以的,但在笔记本电脑和手机上它会损害电池寿命。

使用jquery最小化CPU利用率但是仍然提供快速更新以响应更改(包括剪贴板粘贴,ajax更新等,而不仅仅是按键)到文本框的方法是什么?

2 个答案:

答案 0 :(得分:4)

onBlur是指您离开某个对象而不必更改它。

onChange仅在您离开已更改值的对象后才会调用。

其中一个应该符合您的需求。如果没有,各种按键事件将触发每个字符的更改。

如果这些没有,那么定期更新单个javascript变量可能不会像你说的那样处理能力,除非你的选择器导致一些奇怪的DOM行为。

试试这个:按id引用元素,并将该引用存储在js变量中。通过此引用更新和更改另一个变量是一项简单的操作。

答案 1 :(得分:2)

开始在该文本框的焦点上运行window.setInterval(或setTimeout)检查器,并在模糊时将其终止。这样,当光标不在文本框中时,您将不会消耗CPU功率。