Hallo,
Hat Jemand eine Ideee, wie man die Performance optimieren kann? Habe die Namen der Knoten schon auf das Minimum reduziert, so dass die XML-Datei nur noch 370 KB groß ist. Außerdem habe ich die Abfrage bereits so abgeändert, daß sie nicht mehr alle Knoten durchläuft, sondern nur noch einen bestimmten Knoten eines jeden Datensatzes. Läuft aber immer noch zu langsam.
Dazu muesstest Du schon etwas konkreter werden. Sind die XML-Daten als Dateninsel in ein HTML-Dokument eingebunden? Welche DOM-Methoden wendest Du wie an?
MfG, Thomas
Die XML-Daten sind in einem separaten XML-File. Sie werden mit einem JS abgefragt, welches in eine html-Datei eingebettet ist. Diese sieht so aus:
<html>
<head>
<title>Test</title>
<script language="JavaScript">
var WurzelElement;
var AlleKnoten, AnzahlDerKnoten, AktuellerKnoten, AnzahlDerTagsImAktuellenKnoten, Suchbegriff, LetzterKnoten;
var a, b, c, d = 0;
var XMLDokument = new ActiveXObject("microsoft.xmldom");
XMLDokument.load("ccd.xml");
function ausgabe()
{
Suchbegriff=document.Formular.T1.value;
if (Suchbegriff != null)
{
WurzelElement=XMLDokument.documentElement;
AlleKnoten=WurzelElement.childNodes;
AnzahlDerKnoten = WurzelElement.childNodes.length;
// Tabellenkopf-Layout
window.document.write("<link type='text/css' rel='stylesheet' href='pi_intranet.css'><p class='standard_ccd'><a href='javascript:location.reload()'>Zurück zur Suche</a></p><table width='100%'><tr class='content_h4'><td>Attribut1</td><td>Attribut2</td><td>Attribut3</td><td>Attribut4</td><td>Attribut5</td><td>Attribut6</td><td>Attribut7</td><td>Attribut8</td><td>Attribut9</td><td>Attribut10</td><td>Attribut11</td></tr>");
for (a = 0; a < AnzahlDerKnoten; a++)
{
//Modifizierung, da nur nach einem Attribut gesucht wird
AktuellerKnoten = WurzelElement.childNodes.item(a);
AnzahlDerTagsImAktuellenKnoten = AktuellerKnoten.childNodes.length;
if (AktuellerKnoten.childNodes.item(0).text.toLowerCase().indexOf(Suchbegriff.toLowerCase()) >= 0 && AktuellerKnoten != LetzterKnoten)
{
window.document.write("<tr class='standard_ccd'>");
for (c=0; c < AnzahlDerTagsImAktuellenKnoten; c++)
{
window.document.write("<td>"+AktuellerKnoten.childNodes.item(c).text+"</td>");
d=1;
// Änderung
LetzterKnoten = AktuellerKnoten;
}
window.document.write("</tr>");
}
}
}
window.document.write("</table>");
if (d==0)
{
alert("Suchbegriff nicht gefunden!");
}
}
Gruss
Jan