我有这个脚本,您可以实时查看页面更改。所以一切都很好,但出于某种原因,当我尝试复制文本时,文字会在一秒钟之后变得不那么明显。
我必须尝试在setinterval再次更新页面之前快速复制文本以进行新的更改,所以我的问题是,有没有办法可以看到x.php上的不断变化
同时能够以任意速度复制文本而不中断设置间隔,不断更新页面以进行新的页面更改?
这是我的代码
的index.php
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
function changes(){
$('.x').load('x.php');
}
setInterval(function(){changes()},1000);
});
</script>
<body onload='changes()'>
<div class='x'></div>
</body>
x.php
<p>Random text</p>
答案 0 :(得分:0)
这不是答案。发表评论的时间太长了。
您需要将setInterval
存储到变量中:
var handle = setInterval(function(){changes()},1000);
在此之后,只要你想停止间隔,你就可以打电话
clearInterval(handle);
此处的问题是您要清除间隔时间。如果要从输入中复制文本,解决方案非常简单。您清除焦点上的间隔并在焦点或模糊时再次启动它:
$('input').focus( function() {
clearInterval(handle);
});
$('input').blur( function() {
handle = setInterval(function(){changes()},1000);
});
但是,从p
或div
选择文字后,解决方案会变得更加复杂。您可以在此处看到有关从div中选择文本的解决方案:how to get selection inside a div using jquery/javascript。解决方案非常类似于另一个解决方案,您将清除选择间隔并在焦点上再次启动它。选择文本时,更难的部分是触发。