[英]JS Memory Leak while trying to split text node
我在ap標簽中有一個文本節點,說“ Hello”。 我編寫了兩個函數,它們搜索特定的字符串並將文本節點拆分為多個文本節點,每個文本節點僅包含特定的字符串。 我在chrome和firefox中都將函數的輸出打印到控制台,但是在那之后,在chrome中ram的使用超過了1.5GB,並且崩潰了,在firefox的情況下,它使用了100%的ram迫使我去做重新啟動。 為什么會這樣呢? 這是我正在使用的兩個函數:
var splitIntoNodes = function(s,v){
var i=0,j=0,nodeText,pos,t; var fNodes = [];
for(i;i<s.length;i++){
if(s[i].nodeName=="#text"){
t = makeNodes(s[i],v);
for(j=0;i<t.length;j++) fNodes.push(t[j]);
} else {
t = splitIntoNodes(s[i].childNodes,v);
for(j=0;i<t.length;j++) fNodes.push(t[j]);
}
}
return fNodes;
}
var makeNodes = function(s,v){
var p = s.nodeValue.search(v),q,r,fNodes = [];
while(p>=0){
q = s.splitText(0,p);
r = s.splitText(0,v.length);
fNodes.push(r);
p = r.nodeValue.search(v);
}
console.log(fNodes);
return fNodes;
}
// usage : splitIntoNodes(document.querySelector("id").childNodes),"a_string");
for(j=0;i<t.length;j++) fNodes.push(t[j]);
如果i
小於t.length
是無限循環。
您是要對循環條件使用j
嗎? 即: j < t.length
?
如果是這樣,同一錯誤將向下重復幾行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.