var domain_id = $('#domain_id').val();
$.ajax({
url : "/auction_list",
type : "GET",
dataType : "json",
data : {domain_id : domain_id},
success : function(result){
if(result.errcode == 0){
var datas = result.data;
for( var i = 0;i < datas.length;i++){
var str = ""
str += ""
if(!datas[i].headimgurl){
str += "
";
}else{
str +="
";
}
str += "
"
str += "ID:"+ datas[i].uid+"
"
str += ""+ datas[i].auction_datetime +"
"
str += ""
str += "价格:"+ (datas[i].price).slice(0, -2) +"";
if( i == 0){
str += ""+""
}
str += "
"
str += ""
str += "在线竞拍"+""
str += "
"
str += " ";
$(".auction-list").append(str);
}
}
}
})
直接显示传过来的数据,可是当有新数据时,怎么就刷新新数据,其他的数据不刷新?

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
如果auction_id是单调递增的,第一次加载时把最大的auction_id值存储,那么再次请求只需要加载auction_id比这个存储值大的数据就可以了
用定时器定时请求数据,然后将请求的数据与现有的值比较,如果不一样就替换掉。我一般就直接在html中写好模板,然后用选择器填数据进去,这样可以避免每次定时器全部节点刷新,当然你也可以全部刷新。
避免阻塞的定时器代码:
其实没太懂你的问题。
即使是重新替换全部html,也一样可以做到“让变的数据变,让不变的数据不变”。
你只需做到:追求尽可能小范围的DOM操作就可以了,这种DOM操作的开销是必须的,没必要优化。