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

Cannot update global variable from Ajax call in jQuery more than once

本文关键字:Ajax 调用 全局变量 jQuery 更新      更新时间:2023-09-26

当用户到达页面底部时,我正在尝试加载其他文章。我已经实现了所有的东西,但不能在我多次使用的 JavaScript 中增加全局变量。如果它根本不起作用,我会不那么惊讶,但这样......
无论如何,我已经强制async:false,但它仍然无法按预期工作 - start 变量在第一次调用时增加到 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);
  1. 文档开始 += 1

  2. 尝试将"上下文"变量添加到您的 AJAX 调用中

    $.ajax({ 类型:"开机自检", 上下文:这, ...

或者可能是上下文:文档

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

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