0

この ajax 呼び出しを 5 秒ごとに行って、そのコンテンツを既存の親要素に追加します。この親要素には最大 25 個の要素があるため、それを超える要素は親要素の先頭からほとんど削除されます。contentLength を出力するために行う console.log 呼び出しを除いて、すべてが期待どおりに機能します。contentLength のサイズは増え続けていますが、25 になっているはずです。これは、ajax 呼び出しを行っているという事実と関係があり、ajax 呼び出し内のこの時点で DOM の長さが「正しくない」ためだと思います。私は何か間違ったことをしていますか?どうすればこれを回避できますか?

    AJS.$.ajax({
        url: "ajax.action?",
        success: function (data) { 

                            //Cleanup and insert into parent div
                var divID   = "#" + insertContentIntoDiv;
                var wrapped = AJS.$("<div>" + data + "</div>");
                AJS.$(wrapped).find('title').remove().end();
                wrapped     = AJS.$(wrapped).find('meta').remove().end();
                AJS.$(divID + " dt:last-child").after(wrapped.html().trim());

                //Remove any whitespace pre-pended to parent element
                cleanWhiteSpaceFromElement(insertContentIntoDiv);

                //Remove child elements starting at beginning
                var parentElement = document.getElementById(insertContentIntoDiv);
                if(parentElement){

                    var contentLength = parentElement.childNodes.length;

                    console.log("________________cont: " + contentLength);
                    if(contentLength > 0){

                        var difference = contentLength - maxDisplayedLines;
                        console.log("___________removing: " + difference);
                        if(difference > 0){
                            AJS.$(divID + " dt:lt(" + difference + ")").remove();
                        }
                    } else {
                        console.log("ElementID " + insertContentIntoDiv + " appears to have no children. Was this expected?");
                    }
                } else {
                    console.log("ElementID " + insertContentIntoDiv + " NOT found. Log parsing will NOT be done");
                }
        },
        dataType: 'html'
    });
4

0 に答える 0