javascript - ajax 刷新数据问题?
大家讲道理
大家讲道理 2017-04-11 11:29:39
[JavaScript讨论组]
   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); } } } }) 直接显示传过来的数据,可是当有新数据时,怎么就刷新新数据,其他的数据不刷新?

    大家讲道理
    大家讲道理

    光阴似箭催人老,日月如移越少年。

    全部回复(3)
    阿神

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

    天蓬老师

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

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

    其实没太懂你的问题。

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

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

    热门教程
    更多>
    最新下载
    更多>
    网站特效
    网站源码
    网站素材
    前端模板
    关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
    php中文网:公益在线php培训,帮助PHP学习者快速成长!
    关注服务号 技术交流群
    PHP中文网订阅号
    每天精选资源文章推送
    PHP中文网APP
    随时随地碎片化学习

    Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号