【问题标题】:ajax call does not updateajax 调用不更新
【发布时间】:2016-10-26 22:33:37
【问题描述】:

我打了一个 Ajax 电话。 它会显示我网站上的数据,但如果我在数据库中更改它,它不会自动更新(无需按 f5(刷新我的网站))。

这是我的代码:

$(document).ready(function(){
    getname();
})
function getname(){
        $.ajax({
            type: 'post',
            url: '../php/clas/name.php',
            data: 'type=getthename',
            dataType: 'json',
            success: function(responseOrderData){
                var showOrderData = '';
                var rows = 0;
                $.each(responseOrderData, function(index){
                    rows++;
                    showOrderData += '<tr>';
                    showOrderData += '<td>';
                    showOrderData += responseOrderData[index].name;
                    showOrderData += '</td>';
                    showOrderData += '</tr>';
                    console.log(responseOrderData);
                });
                if(rows == 0){
                    showOrderData += '<tr><td colspan="7"><center><i class="fa fa-refresh fa-spin"></i></center></td></tr>';    
                }
                $('.orderData').html(showOrderData);
            },
            timeout: 1000,
            error: function(error){
                console.log(error);
            }
        })
    }

【问题讨论】:

  • 您想每隔 x 秒检查一次更新吗?

标签: ajax call


【解决方案1】:

您需要像 socket.io 这样的东西来进行实时更新并将数据从服务器发送到客户端,但您可以使用 JavaScript setTimeoutsetInterval 来完成任务以刷新 html 内容而无需重新加载页面

$(document).ready(function(){
    getname();
})
function getname(){
        $.ajax({
            type: 'post',
            url: '../php/clas/name.php',
            data: 'type=getthename',
            dataType: 'json',
            success: function(responseOrderData){
                var showOrderData = '';
                var rows = 0;
                    if(rows == 0){
                    showOrderData += '<tr><td colspan="7"><center><i class="fa fa-refresh fa-spin"></i></center></td></tr>';    
                }
                $.each(responseOrderData, function(index){
                    rows++;
                    showOrderData += '<tr>';
                    showOrderData += '<td>';
                    showOrderData += responseOrderData[index].name;
                    showOrderData += '</td>';
                    showOrderData += '</tr>';
                    console.log(responseOrderData);
                });

                $('.orderData').html(showOrderData);
                //wait 10 seconds after ajax called successfully
                setTimeout(getname,10000);
            },
            timeout: 1000,
            error: function(error){
                console.log(error);
            }
        })
    }

【讨论】:

    猜你喜欢
    • 2013-01-14
    • 2019-08-31
    • 2019-02-05
    • 2017-05-31
    • 1970-01-01
    • 2016-04-20
    • 2015-01-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多