我有一个DIV,它是由文档上的$.get数据填充的,然后我每5秒调用一次setInterval。我尝试做的是在setInterval $.get成功的时候,如果#are_friends的html数据和以前一样,什么也不做,但是如果它不同,那么就再次将数据加载到#are_friends中。
有没有人知道我会怎么做,或者是比我正在尝试实现的更好的方式。
<div id="are_friends"></div>
<script type="text/javascript">
$(document).ready(function() {
$.get('<?php echo $siteUrl ?>are_friends.php?userid=<?php echo $userid; ?>', function(data) {
$("#are_friends").html(data);
});
var auto_refresh = setInterval(
function ()
{
$.ajax({
url: "<?php echo $siteUrl ?>are_friends.php?userid=<?php echo $userid; ?>",
success: function(newdata){
var oldcontent = $("#are_friends").html();
if(oldcontent != newdata) {
$("#are_friends").html(newdata);
}
}
});
}, 5000); // refresh every 5000 milliseconds
});
</script> 发布于 2012-11-15 01:06:58
至少,您可以重用获取数据的函数,如下所示:
function getData(callback)
{
$.ajax({
url: "<?php echo $siteUrl ?>are_friends.php?userid=<?php echo $userid; ?>",
success: function(newdata){
callback(newdata);
}
});
}
$(document).ready(function()
{
getData(function(data)
{
$("#are_friends").html(data);
});
var auto_refresh = setInterval(function ()
{
getData(function(newdata)
{
if($("#are_friends").html() != newdata) {
$("#are_friends").html(newdata);
}
});
}, 5000);
});实际上,初始调用和后续调用是相同的,那么为什么不重用它呢?
发布于 2012-11-15 01:13:19
这与您正在处理数据有很大关系。现在你只是产生了一大堆无用的信息。我建议您在请求are_friends.php时也发送一些当前状态的标记。PHP将使用该标记检查是否有更改,并返回“无更改”或更新的HTML。在这里,如果没有任何改变并且传输较少(假设大多数请求将返回“无改变”),则应降低服务器负载。但是再说一遍。这取决于你在are_friends.php中做什么,你需要什么数据等等。
https://stackoverflow.com/questions/13383550
复制相似问题