【问题标题】:Limit To Number Of Post Requests (Javascript + node.js + jQuery)限制发布请求的数量(Javascript + node.js + jQuery)
【发布时间】:2013-03-28 11:25:39
【问题描述】:

基本上,我有客户端 javascript,它将用户与页面的交互触发的发布请求(通过 jQuery)发送到我的 node.js 服务器。然后 node.js 服务器处理请求并更新数据库中的内容。

由于某种原因,我达到了在单个页面加载中可以发送到服务器的帖子数量的限制。此最大值为 6。从一个页面发送 6 个帖子后,尝试发送更多请求时出现以下错误:

编辑:

在尝试发送超过 6 个请求后,这些红色错误在我的 Javascript 控制台中弹出:

    send jquery-latest.js:8526
    jQuery.extend.ajax jquery-latest.js:7978
    jQuery.(anonymous function) jquery-latest.js:7614
    haveLikedOrDislikedObject
    (anonymous function) localhost:33
    fire jquery-latest.js:1037
    self.fireWith jquery-latest.js:1148
    done jquery-latest.js:8074
    callback

我发送帖子的代码:(基本上一个监听器附加到许多div,当点击它时发送一个帖子请求)

    //Sets on click listener for like button of content
    $(document).delegate("div[id^='likeDiv']", "click", function() {
        var el = this;
        $.getScript("public/javascripts/load_content.js", function(){
            haveLikedOrDislikedObject(0, $(el).attr('name'), theUser);
        });
    });

    function haveLikedOrDislikedObject(res, contentNumber, user){

        if(user != undefined){
            if(res == 0){
                $.post("/likeContent", { content: contentNumber, user: user.UserID });
                $("#haveLikedDiv_" + contentNumber).text("You like this.");
            } else{
                $.post("/dislikeContent", { content: contentNumber, user: user.UserID });       
                $("#haveLikedDiv_" + contentNumber).text("You dislike this.");
            }
        } else{
            $("#haveLikedDiv_" + contentNumber).text("Sorry, something went wrong.");
        }
    };

只是想知道为什么我会得到这个限制?另外,我有什么想法可以解决这个问题,或者以其他方式从一个页面向我的服务器发送大量内容?

已解决: 结果我没有从我的服务器发回任何东西,我认为这意味着每个帖子都在等待响应,因此发出 6 个打开请求。因此,请确保您从服务器发送回一些东西,即使它是这样未定义的:

    app.post('/likeContent', function(req, res){
       res.send(undefined);
    });

【问题讨论】:

  • 什么错误?我发现您发布的内容没有错误。发布您的代码以获取可重现的示例。
  • “这些错误”到底是什么?
  • 为什么不让回调函数发出另一个AJAX请求呢?这样你就不会同时触发 6 个或更多事件,而是按顺序触发。
  • 它们确实是按顺序发生的。该 post 方法仅在用户单击页面的某些元素时触发。没有同时发送 6 个请求。
  • 那么请发布更多代码或更好的实时演示页面,以便我们重现您的问题。我无法制作任何这些错误消息。

标签: javascript jquery ajax node.js


【解决方案1】:

原来我没有从我的服务器发回任何东西,我认为这意味着每个帖子都在等待响应,因此发出 6 个打开请求。因此,请确保您从服务器发送回一些东西,即使它是这样未定义的:

app.post('/likeContent', function(req, res){
   res.send(undefined);
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-16
    • 2012-12-13
    • 2020-11-12
    • 2018-05-03
    相关资源
    最近更新 更多