无法在jQuery中多次从Ajax调用更新全局变量

时间:2013-10-29 11:41:51

标签: javascript jquery ajax

当用户到达页面底部时,我正在尝试加载其他文章。我已经实现了所有的东西,但是不能在我多次使用的JavaScript中增加全局变量。如果它根本不起作用我会不会感到惊讶,但这样...... 无论如何,我已经强制async:false并且仍然没有按预期工作 - start variable 在第一次调用时增加到1,然后在每次下一次调用后总是1。

我做错了什么,如何解决这个问题?

start = 0;

function LoadNextArticles()
{
    $.ajax({
        type: "post",
        url: "ajax/articles_load.php",
        data: "start=" + start,
        async: false,
        success: function(msg) {
            c = $("#content").html();
            $("#content").html(c + msg);

            start += 1;             
        }
    });
}

setInterval(function() {    
    if  ( ($(document).height() - $(window).height()) - $(window).scrollTop() < 10 )
    {
        LoadNextArticles();
    }
}, 1000);

2 个答案:

答案 0 :(得分:0)

  1. document.start + = 1

  2. 尝试将'context'变量添加到您的ajax调用

    $。AJAX({     类型:“POST”,     上下文:这个,     ...

  3. 或者可能是上下文:文档

答案 1 :(得分:0)

我发现您的代码没有问题,但请尝试使用window.start代替start 此外,async:false是个坏主意,它会暂停执行javascript,直到您的请求完成。

有关全局变量的更多信息: http://snook.ca/archives/javascript/global_variable