我创建了一个每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
等,但只有当用户自动更改值时才会起作用,我注意到如果其他脚本更改了输入的值,它就不会捕获更改。
答案 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秒调用一次函数,因此在好的计算机上没有太多问题。此外,不是每个人都有好的电脑。有些用户使用慢速计算机会出现性能问题,因此需要采用其他方式。