Slow javascript

dwellman

Splendid
Dec 14, 2002
3,792
0
22,790
Firebug complains of:
[fixed]function tf_findTextNodesForOntheFly(node, skipMarkCheck) {
var tokens = tf_page_words.split(" ");
if (tokens.length >= OTF_WORDS_EXTRACT_LIMIT) {
return;
}
if (node.nodeType == 1 && !skipMarkCheck) {
if (tf_isNodeContentBlockedMarked(node)) {
return;
}
if (node.getAttribute("id") &&
node.getAttribute("id").tagName &&
node.getAttribute("id").tagName == "INPUT") {
return;
}
for (var j = 0; j < tf_textLinkMarkers.length; j++) {
if (node.getAttribute("id") &&
node.getAttribute("id") == tf_textLinkMarkers[j] ||
node.className && node.className == tf_textLinkMarkers[j] ||
node.getAttribute("name") &&
node.getAttribute("name") == tf_textLinkMarkers[j]) {
return;
}
}
for (var j = 0; j < tf_textLinkMarkersRegex.length; j++) {
if (node.getAttribute("id") &&
node.getAttribute("id").match(tf_textLinkMarkersRegex[j]) ||
node.className &&
node.className.match(tf_textLinkMarkersRegex[j]) ||
node.getAttribute("name") &&
node.getAttribute("name").match(tf_textLinkMarkersRegex[j])) {
return;
}
}
}
if (node.nodeType == 3) {
regstrMarkdContent(node.data);
return;
}
if (node.style &&
(node.style.display.toLowerCase() == "none" ||
node.style.visibility.toLowerCase() == "hidden")) {
return;
}
if (node.tagName == "A" ||
node.tagName == "SCRIPT" ||
node.tagName == "OPTION" ||
node.tagName == "TEXTAREA" ||
node.tagName == "IFRAME" || node.tagName == "OBJECT") {
return;
}
if (tf_pubObj &&
!tf_pubObj.enableHeaderTextlink &&
(node.tagName == "CODE" ||
node.tagName == "H1" ||
node.tagName == "H2" ||
node.tagName == "H3" ||
node.tagName == "H4" ||
node.tagName == "H5" || node.tagName == "H6")) {
return;
}
if (node.hasChildNodes()) {
var children = new Array;
for (var i = 0; i < node.childNodes.length; i++) {
children[children.length] = node.childNodes;
}
for (var i = 0; i < children.length; i++) {
// breaks on this line
tf_findTextNodesForOntheFly(children, children.tagName != "DIV" &&
children.tagName != "SPAN" &&
children.tagName != "TABLE"); }
}
}[/fixed]