2008-08-18 19 views
2

Jeder, der clientseitiges JavaScript schreibt, kennt das DOM - die Baumstruktur, auf die Ihr Browser im Speicher verweist, generiert aus dem HTML, das er vom Server erhalten hat. JavaScript kann Knoten in der DOM-Struktur hinzufügen, entfernen und ändern, um Änderungen an der Seite vorzunehmen. Ich finde es sehr angenehm zu arbeiten (abgesehen von Browserfehlern) und ganz anders als die Art und Weise, wie mein serverseitiger Code die Seite überhaupt generieren muss.Baumbasiertes (vs. HTML-basiertes) Web Framework?

Meine Frage ist: Welche serverseitigen Frameworks/Sprachen erstellen eine Seite, indem Sie sie von Anfang an als DOM-Baum behandeln - Knoten einfügen anstatt Echostrings? Ich denke, es wäre sehr hilfreich, wenn der clientseitige und der serverseitige Code die Seite auf die gleiche Weise sehen würden. Sie könnten so etwas in einer beliebigen Web Server Sprache zusammen hacken, aber ein Framework, das auf diese Weise eine Seite erstellt, könnte einige sehr schöne Optimierungen machen.

Open Source, weit verbreitet und schon eine Weile im Einsatz, wären alle Pluspunkte.

Antwort

2

Sie beschreiben Rhino on Rails, die nicht aus, aber bald sein wird. Ähnlich, Aptana Jaxer, jedoch wird RnR ein tatsächliches Framework (Rails) enthalten, während Jaxer nur die Server-Technologie ist.

-1

Ich sehe, woher du kommst, aber es ist alles ein bisschen falsch, nicht wahr? Sie können nichts als gerenderten Inhalt an den Browser senden, und Sie müssen alles auf einmal (AJAX beiseite) tun. Es gibt keinen Wert von dem, was Sie vorschlagen (von dem, was ich sehen kann), selbst wenn Sie es baumartig aufbauen, bauen Sie immer noch nur eine Seite auf, die an den Kunden gesendet wird.

+0

Der Vorteil ist, dass Sie mit Daten als Daten und nicht als String-Darstellung dieser Daten interagieren können. – eyelidlessness

2

Aptanas Jaxer AJAX Server könnte etwas für Sie sein, da es auch JS Server-Seite verwendet.

Das heißt, ich würde argumentieren, dass es besser ist, nicht Ihr Markup mit Druckanweisungen oder Echos zu generieren, sondern Vorlage und Hook in Ihrem dynamischen Inhalt.

0

Jaxer ist serverseitige Javascript + das DOM. Sie können Jaxer mit anderen Sprachen integrieren, indem Sie deren Ausgabe nachbearbeiten.

Auch in Java, PHP, ... können Sie Xpath verwenden, um das DOM zu manipulieren.