この 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'
});