javascript - Ajax kann nur Daten hinzufügen und anzeigen, die sofort über append() erhalten wurden
过去多啦不再A梦
过去多啦不再A梦 2017-06-12 09:29:42
0
3
948
function longPolling() {
        $.ajax({
            url:'data.json',
            type:'POST',
            dataType: "json",            
            success:function(data){
                if (data){
                    var date_len = data.length;
                    for (var i=0;i<date_len;i++){
                        var dom = '<li><p id="'+i+'"><p class="num">'+data[i].Num+'</p><p class="a">'+data[i].Time+'<p class="C">'+data[i].Description+'</p></p></p></li>';
                        var tag = '#'+i;
                        console.log(!$(tag).length);
                        if(!$(tag).length){
                            $('.tb-con ul').append(dom);
                        }
                    }
                }
            }
        });
    }
    
window.setInterval('longPolling()',1000);   

Hinzugefügte Daten in JSON können sofort angezeigt werden, sie können jedoch nicht sofort nach dem Löschen aktualisiert werden.

过去多啦不再A梦
过去多啦不再A梦

Antworte allen(3)
世界只因有你

你在请求前先把ul里面的内容清空不就好了?这样每次拿到不都是最新的吗
$('.tb-con ul').html("")

小葫芦

首先是及时,你打错了一个字,
ajax是用来请求后台数据的,append是把请求来的数据动态的追回到页面,
一般删除的话,也是先请求后台,问后台可不可以删,不可删提示,可删就直接删了,然后页面上把dom删除就好了

为情所困

ajax是异步请求数据的时候才会有,数据格式在传输的时候默认是json字符串,ajax是用在服务器与客户端直接的,不是取json数据的,本地可以用JSON.parse转换,应该不用ajax这么复杂

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage