Itererar genom xml-feed

JavaScript

2 svar · 445 visningar · startad av SPiN

Medlem sedan mars 20007 896 inlägg
Trådstart#1

Hej!
Jag har stött på ett problem som jag inte kommer förbi. Jag läser in ett xml-dokument från ett feed, och ska iterera ut informationen.

var myValues = new Array();
var index = 0;

function load(xmldoc) {
     var names = xmldoc.getElementsByTagName("name");
     var values = xmldoc.getElementsByTagName("value");

     var myValue = new Array();
     for(i = 0; i < names.length; i++) {
          myValue[0] = names[i].childNodes[0].nodeValue;
          myValue[1] = values[i].childNodes[0].nodeValue;

          myValues[i] = myValue;
     }

     roll();
}

function roll() {
     document.getElementById('Field').innerHTML = myValues[index][0] + document.getElementById('Field').innerHTML;

     index++;
     if(index >= myValues.length) {
          index = 0;
     }

     preroll();
}

function preroll() {
     setTimeout("roll()", 1000);
}

Det enda som fylls på i mitt 'Field', är den sista posten i arrayen 'myValues'.

Någon som hittar mitt fel?

Medlem sedan mars 20007 896 inlägg
#2

Nevermind. Självklart var jag tvungen att förnya arrayen 'myValue' i varje loop.

function load(xmldoc) {
     var names = xmldoc.getElementsByTagName("name");
     var values = xmldoc.getElementsByTagName("value");

     var myValue = new Array();
     for(i = 0; i < names.length; i++) {
          myValue = new Array();
          myValue[0] = names[i].childNodes[0].nodeValue;
          myValue[1] = values[i].childNodes[0].nodeValue;

          myValues[i] = myValue;
     }

     roll();
}
Medlem sedan mars 20007 896 inlägg
#3

Jag ställer en följdfråga:
Mitt XML-feed innehåller oftast omkring 250-300 poster (ibland uppåt 500 poster), och JavaScript verkar vara kasst på att hantera den storleken på information?! Är det att föredra att sköta inläsning och viss bearbetning med ett server-side språk i det här fallet, eller finns det genvägar att gå?

278 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
135 ms — deklarationer (db)
0 ms — hämta statistik (cache)
140 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)