Homepage selbermachen 7.852 Themen, 35.619 Beiträge

Mit Javascript direkt auf den Quelltext "zugreifen"

Yves3 / 7 Antworten / Baumansicht Nickles

Hallo

Ich habe eine Liste mit Log-Einträgen.
Die möchte ich jetzt mit Javascripts so darstellen, dass man die Liste nach verschiedenen Kriterien sortieren und verschiedene Filter setzen kann.
Beispielsweise Sortieren nach: ID, Filter: Nur Fehler.
Zudem sollten die Details eines Events mit einem plus/minus Zeichen ein- bzw. ausgeblendet werden können.

Ich habe noch nie etwas mit javascript gemacht, habe aber bei selfhtml.org ein paar Tutorials durchgemacht und programmiere c++ (die Syntax ist oft zeimlich ähnlich).

Leider habe ich bisher nur Beispiele gesehen, wo auf eine Textarea oder sonst ein Formularfeld zugegriffen wird, aber nie direkt auf die Seite.
Das mit den +und - Zeichen gibts aber beispielsweise bei der Anzeige von XML Dateien im IE... ich vermute also dass es grundsätzlich möglich sein sollte.

Könnt ihr mir da ein paar Tips geben, vor allem wie ich auf die Seite schreiben kann.
Bei Formualren geht das ja so: document.Formular.text

Schon mal Danke im Voraus!

bei Antwort benachrichtigen
Yves3 Nachtrag zu: „Mit Javascript direkt auf den Quelltext "zugreifen"“
Optionen

Ich denke mit der Methode document.write() lässt sich etwas machen... Ich melde mich wieder bei Erfolg/Misserfolg.

bei Antwort benachrichtigen
Yves3 Nachtrag zu: „Mit Javascript direkt auf den Quelltext "zugreifen"“
Optionen

Hmm ich schaffs so noch nicht.
Könnte mir jemand grob sagen, wie ich an dieses Problem ran soll?

bei Antwort benachrichtigen
basil Yves3 „Mit Javascript direkt auf den Quelltext "zugreifen"“
Optionen

Eine Seite hat eine hierarchische Struktur, die im Document-Object-Model festgelegt ist. Auf die gleiche Weise, wie Du zum Beispiel auf ein Formularfeld zugreifen kannst, kannst Du auch auf den Inhalt einer Seite selbst zugreifen und manipulieren.
So ist document.innerHTML der HTML-Inhalt einer Seite. Document.innerText ist das gleiche als Text.
Document.nodes sind die einzelnen Knoten innerhalb der Seite. String ist das Pseudoelement zur Manipulation von Strings und bietet einfache reguläre Ausdrücke.
Deine Informationen zum eigentlichen Problem sind aber leider etwas dürftig, so hast Du nicht erklärt, wie die Logdateien in die HTML-Seite hinein kommen oder kommen sollen, obsie nur als reiner Text hineinkopiert werden, ob sie schon aufbereitet sind, wiesie genau dargestellt werden sollen.
Grundsätzlich funktioniert dein Vorhaben auf jeden Fall, die bessere Frage wäre aber, ob es sinnvoll ist, dies wirklich so zu machen. So ist es zum Beispiel eher unsinnig eine riesige Logdatei im Rohformat auf den Client zu laden und dann nur irgendwelche speziellen Einträge daraus darzustellen, zumal nicht nur die Verbindung Client → Server ein Flaschenhals darstellt, auch JavaScript selbst ist eher langsam und zur Manipulation großer Textmengen eher schlecht geeignet.
Vielleicht wäre ein System auf Basis von AJAX (schau bei Google oder Wikipedia danach) sinnvoller, bei dem Du auf dem Sever die Daten schon entsprechend vorbereitest mit einer Scriptsprache oder einem entsprechenden CGI und vom Client dynamisch nur die benötigten Einträge vom Server laden lässt.

bei Antwort benachrichtigen
Yves3 basil „Eine Seite hat eine hierarchische Struktur, die im Document-Object-Model...“
Optionen

Vielen Dank erst mal für deine Hilfe!
So sollte ich es wohl schaffen.
Ich habe absichtilich nicht zu viele Angaben gemacht, da es eigentlich auch nicht mein Wunsch war, von irgend einem netten Kerl ein fertiges Resultat zu bekommen.
Ich denke, dass es so, wie ich es machen will, durchaus Sinn macht. Das ganze ist nämlich nicht so aufgebaut, wie du (wegen den wenigen Infos) wohl denkts... Ich habe ein c++ Programm, das ein xml Logfile erstellt.
Das Teil ist relativ schlank, es werden nur Pro Event eine Zeilennummer, eine Zahl für die Art des Events, eine ID und ein Text gespeichert. Dazu kommt noch ein Header mit Hard- und Softwareinfos.
Dieses XML File sollte dann mit XSLT in die Form Javascript+HTML+CSS gebracht werden, damit es ein bisschen übersichtlicher ist.
Die *.xsl Datei mit dem ganzen Formatierungsgaga und den Scripts muss ja nicht auf dem PC des Anwenders sein, es reicht, wenn die bei mir ist und ich dann das Logfile in diesen Ordner kopieren und es anschauen kann.
Im Code ist alles so implementiert, dass ich zwischen 4 Debugingstufen wählen kann. (die 4. = kein Debug).

Die Grundidee habe ich aus einem Tutorial bei gamedev.net.

Gruss yves


[Diese Nachricht wurde nachträglich bearbeitet.]

bei Antwort benachrichtigen
Yves3 Nachtrag zu: „Vielen Dank erst mal für deine Hilfe! So sollte ich es wohl schaffen. Ich habe...“
Optionen

Oder meinst du Javascript ist zu lahm dafür?

bei Antwort benachrichtigen
basil Yves3 „Oder meinst du Javascript ist zu lahm dafür?“
Optionen

Ja, das meinste ich eigentlich. Dabei ging ich aber von einer Opton aus, wie Du es nicht umsetzt, von der ich aber aufgrund der Informationen meinte, Du würdest es so planen. Der Hintergrund dabei ist, daß JavaScript nicht sehr performant ist, wen Du mit großen Datenmengen arbeitest. Ich ging dabei davon aus, daß Du vom Server eine große Logdatei im Prinzip roh in eine HTML-Seite lädst und diese dort erst mit JavaScript parsen würdest. In diesem Fall hättest Du mit immensem Speicherverbrauch und langsamer Scriptabarbeitung rechnen müssen, da habe ich dein Konzept aber unterschätzt.
Wenn Du serverseitig ohnehin in XML parst würde ich Dir zwei Wege ans Herz legen. Der erste funktioniert mit etwas Geschick in allen aktuelleren Browsern und beruht auf dem XMLHttpRequest-Objekt (dazu findest Du unter dem Stichwort Ajax viele Anwednungsbeispiele), der andere Weg ist auf den Internet Explorer neuerer Bauart beschränkt und heißt XML-Islands. Beides kann Dir zu einer performanten und in Punkto Usability sehr gut zu strukturierenden Anwendung verhelfen.

bei Antwort benachrichtigen
Yves3 basil „Ja, das meinste ich eigentlich. Dabei ging ich aber von einer Opton aus, wie Du...“
Optionen

Ich werde mir das auf jeden Fall mal anschauen.
Ein Kollege, der auch an diesem Projekt mitarbeitet(das Logsystem ist nur ein Teil davon), hatte noch einen anderen Vorschlag.
Er wird mal probieren, das Logfile mit einem c++ Programm an den Server zu schicken(mit soap oder wie das Protokoll noch mal hiess...), dann wird er es dort in eine Datenbank ablegen und mithilfe von asp.net übersichtlich darstellen und Funktionen wie Sortieren, Filtern usw. implementieren.
Davon verstehe ich aber nicht besonders viel.

Ich werde wohl das ganze mal ohne Javascript machen und einfach nur das ganze Logfile mit XSLT in html und css transformieren.
Aber wie gesagt, mein Ehrgeiz zwingt mich dazu, deine Variante mal etwas genauer anzuschauen und wahrscheinlich auch was daraus zu machen.
Es geht ja in erster Linie darum etwas zu lernen... und das geht nicht wenn mein Kollege es macht ;-)

Also noch mal vielen Dank für deine hilfreichen Antworten!

bei Antwort benachrichtigen