Manchmal staunt man nicht schlecht. So schneidet Firefox als einziger beim Auslesen der nodeValue eines xml-Objektes in Javascript einfach nach 4096 Bytes ab. So ist das eigentlich nicht spezifiziert, aber die Jungs & Maedels von Mozilla treiben das bereits seit 2003 so, wie man in einem Bug Report nachlesen kann. Danke fuer die grauen Haare!! Hier ist ein moeglicher Workaround in Javascript-Literal-Schreibweise:
// workaround for firefox which splits nodeValue in packets of 4096 bytes
// see https://bugzilla.mozilla.org/show_bug.cgi?id=194231
getXmlNodeValueWithout4KBLimit: function(xmlTag) {
if(xmlTag.firstChild.textContent && xmlTag.normalize) {
xmlTag.normalize(xmlTag.firstChild);
content=xmlTag.firstChild.textContent;
} else if(xmlTag.firstChild.nodeValue) {
content=xmlTag.firstChild.nodeValue;
} else {
content=null;
}
return content;
}
By the way ist es ein ziemliches Gefrickel mit Javascript XML zu parsen. Nicht nur dass es wieder jeder Browser (insbes. IE) anders haben moechte, nein, es ist auch noch recht langsam. Hier bietet sich im Zweifelsfalle an JSON zu benutzen. Z.B. so:
var jsonContainer =
[
{
"name" : "name1",
"icon" : "img/muetze.gif"
},
{
"name" : "name2",
"icon" : "img/glatze.gif"
}
];
Der Zugriff erfolgt dann bspw. mit jsonContainer[1].icon.
Weiss jemand ob es eine utf8-decode Funktion in Javascript NATIV gibt? Ich fand nur Selbstgefrickeltes in Form eines zeichenweisen Absuchens und Ersetzes -> vieeel zu langsam..
Donnerstag, 10. April 2008
Workaround/Loesung fuer Firefox nodeValue 4 KB (4096 Bytes) Limit BUG
Trackbacks
Trackback-URL für diesen Eintrag
Keine Trackbacks