每2秒重新加载一次div并发布数据

时间:2017-02-01 12:35:54

标签: javascript jquery html

我创建了一个jquery,我希望每2秒后重新加载一次文件,也可以发布数据。

这是html

<input type="hidden" id="class_id" value="<?php echo $data['class']; ?>" />
<input type="hidden" id="user_id" value="<?php echo $_SESSION['uid']; ?>" />
<tbody id="donors_list"></tbody>

我的Jquery

$.ajaxSetup({ cache: false });

$(document).ready(function() {
    var class_id = $('#class_id').val();
    var user_id  = $('#user_id').val();
    setTimeout(
        $.ajax({
            url         : "includes/get_data.php", 
            type        : "POST",             
            data        : {class_id : class_id, user_id : user_id, new_list: 'new_list'},
            dataType    : 'text',            
            success     : function(data) {
                $("#donors_list").html(data);
            }
        });
    , 2000);
});

错误:

  

VM229:1未捕获的SyntaxError:意外的标识符

2 个答案:

答案 0 :(得分:1)

您需要使用setInterval代替file1.html

  

WindowOrWorkerGlobalScope.setInterval()

     

WindowOrWorkerGlobalScope mixin的setTimeout方法重复调用函数或执行代码片段,每次调用之间有固定的时间延迟。返回setInterval()

intervalID

答案 1 :(得分:1)

当前代码中存在语法错误。方法setTimeout()期望字符串文字中的方法/代码执行,两者都不提供。

由于间隔是2秒(非常少),我建议你在函数中包装代码,然后递归调用success回调。此处setTimeout用于推迟执行$.ajax()调用。

$(document).ready(function () {
    //on Page load
    f()
});

function f() {
    setTimeout(function () {
        var class_id = $('#class_id').val();
        var user_id = $('#user_id').val();
        $.ajax({
            url: "includes/get_data.php",
            type: "POST",
            data: {
                class_id: class_id,
                user_id: user_id,
                new_list: 'new_list'
            },
            dataType: 'text',
            success: function (data) {
                $("#donors_list").html(data);

                //Schedule for next execution
                f();
            }
        })
    }, 2000);
}