ajax 刷新数据问题?

   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 = "<li>"
                                    str += "<div class='portrait'>"
                                    if(!datas[i].headimgurl){
                                    str += "<img src='/img/sctx.png'>";   
                                    }else{
                                    str +="<img scr='"+datas[i].headimgurl+"'>";    
                                    }
                                    str += "</div>"
                                    str += "<div>ID:"+ datas[i].uid+"</div>"
                                    str += "<div>"+ datas[i].auction_datetime +"</div>"
                                    str += "<div class='price-wrapper'>"
                                    str += "<span class='auction-price'>价格:"+ (datas[i].price).slice(0, -2) +"</span>";
                                    if( i == 0){
                                      str += "<span class='first'>"+"</span>"  
                                    }
                                    str += "</div>"
                                    str += "<div>"
                                    str += "<span class='on-line'>在线竞拍"+"</span>"
                                    str += "</div>"
                                    str += "</li>";
                                    $(".auction-list").append(str);
                                }
                            }
                                
                        }
                    })
                    
                    
                直接显示传过来的数据,可是当有新数据时,怎么就刷新新数据,其他的数据不刷新?
                

clipboard.png

阅读 2.4k
3 个回答

如果auction_id是单调递增的,第一次加载时把最大的auction_id值存储,那么再次请求只需要加载auction_id比这个存储值大的数据就可以了

用定时器定时请求数据,然后将请求的数据与现有的值比较,如果不一样就替换掉。我一般就直接在html中写好模板,然后用选择器填数据进去,这样可以避免每次定时器全部节点刷新,当然你也可以全部刷新。
避免阻塞的定时器代码:

setTimeout(function() {
        draw();//ajax请求,更新数据
        setTimeout(arguments.callee, interval);
    }, interval)

其实没太懂你的问题。

即使是重新替换全部html,也一样可以做到“让变的数据变,让不变的数据不变”。

你只需做到:追求尽可能小范围的DOM操作就可以了,这种DOM操作的开销是必须的,没必要优化。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题