用这个实时脚本复制文本很困难

时间:2018-01-27 23:59:54

标签: jquery ajax

我有这个脚本,您可以实时查看页面更改。所以一切都很好,但出于某种原因,当我尝试复制文本时,文字会在一秒钟之后变得不那么明显。

我必须尝试在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>

1 个答案:

答案 0 :(得分:0)

这不是答案。发表评论的时间太长了。

您需要将setInterval存储到变量中:

var handle = setInterval(function(){changes()},1000);

在此之后,只要你想停止间隔,你就可以打电话

clearInterval(handle);

此处的问题是您要清除间隔时间。如果要从输入中复制文本,解决方案非常简单。您清除焦点上的间隔并在焦点或模糊时再次启动它:

$('input').focus( function() {
  clearInterval(handle);
});

$('input').blur( function() {
  handle = setInterval(function(){changes()},1000);
});

但是,从pdiv选择文字后,解决方案会变得更加复杂。您可以在此处看到有关从div中选择文本的解决方案:how to get selection inside a div using jquery/javascript。解决方案非常类似于另一个解决方案,您将清除选择间隔并在焦点上再次启动它。选择文本时,更难的部分是触发。