在浏览器中运行x秒脚本有什么影响吗?

时间:2016-01-22 14:13:18

标签: javascript jquery

我创建了一个每1秒运行一次的脚本,寻找值的变化。考虑下面的代码:

setInterval(function() {
   var inputOne = jQuery('#0_img_file');
   var inputTwo = jQuery('.0_img-file').attr('src');
   return function() {
      if (inputOne.val() !== inputTwo) {
         jQuery('.0_img-file').attr('src', inputOne.val());
      }
   }
}(), 1000);

因此,我的问题是,这个脚本是否会影响用户的网站体验或任何其他不知道的东西?

我知道jquery中有函数,如onChange, change等,但只有当用户自动更改值时才会起作用,我注意到如果其他脚本更改了输入的值,它就不会捕获更改。

3 个答案:

答案 0 :(得分:1)

首先,您的代码每秒运行10次,而不是一次。但是,您的浏览器可能运行在具有至少2个具有超线程的多千兆字节内核的计算机上,在板上有兆字节的缓存并且您将其命名。所以不,每100毫秒(或1秒)重复一个微不足道的任务不会明显减慢浏览器的速度,JS通常会相当快。

不要像这样运行100个工作, 会开始感受到它。当然,您应该只是修改脚本的事件来修改值,而不是轮询更改,这应该可以很好地使用Javascript - 由于其原型性质,它很容易插入现有代码。< / p>

答案 1 :(得分:0)

  

我注意到,如果其他脚本更改了输入的值,它就不会捕获更改。

那是因为你可能使用.attr('value', something).attr('checked', true')代替.val(something).prop('checked', true)

  

因此,我的问题是,这个脚本是否会影响用户的网站体验或任何其他不知道的东西?

当然可以。特别是如果脚本做了一些繁重的操作。许多浏览器只在一个线程中执行Javascript。因此,当您的脚本启动时,浏览器将在执行期间冻结。如果你只有一个轻脚本,那没关系。但如果你滥用这种方法,你会遇到一些性能问题。

答案 2 :(得分:0)

嗯,我认为网站会慢一些。该脚本每1秒调用一次函数,因此在好的计算机上没有太多问题。此外,不是每个人都有好的电脑。有些用户使用慢速计算机会出现性能问题,因此需要采用其他方式。