2

基本的に、ユーザーがページを操作することでトリガーされた投稿リクエストを(jQueryを介して)node.jsサーバーに送信するクライアント側のJavaScriptがあります。次に、node.jsサーバーがリクエストを処理し、データベース内のコンテンツを更新します。

何らかの理由で、1回のページ読み込みでサーバーに送信できる投稿数の制限に達しています。この最大値は6です。1つのページから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);
    });
4

1 に答える 1

3

サーバーから何も返送していなかったことがわかりました。これは、各投稿が応答を待っていたため、6つのオープンリクエストを行ったことを意味すると思います。したがって、次のように定義されていない場合でも、サーバーから何かを返送していることを確認してください。

app.post('/likeContent', function(req, res){
   res.send(undefined);
});
于 2013-03-28T03:25:39.727 に答える