11 Stimmen

Was hindert die breite Verwendung von XSLT für Webseiten?

Warum werden nicht mehr Webseiten mit XML und einem XSLT-Stylesheet geschrieben? Für die Trennung von Inhalt und Darstellung wäre dies in Kombination mit CSS sogar noch leistungsfähiger. Zurzeit wird der Code für das Navigationsmenü oft von Hand von Seite zu Seite kopiert oder es wird etwas gemacht wie

<?php include_once('myheader.inc'); ?>

auf jeder Seite, was nicht nur den Server stärker belastet, sondern auch zu einer doppelten Datenübertragung führt.

Als ich es kennenlernte, wurde mir gesagt, dass alle wichtigen Browser bis hin zum IE6 XSLT 1.0 unterstützen... gibt es unlösbare Fehler zwischen den Implementierungen? Gibt es andere Hindernisse oder schwerwiegende Funktionsmängel, die die Verbreitung von XML+XSLT behindern? Die einzige Website, die ich in letzter Zeit gesehen habe, die XML+XSLT verwendet, ist starcraft2.com.

3 Stimmen

Haben Sie jemals versucht, Variablen in XSLT zu verwalten?

4 Stimmen

Es ist viel zu schwerfällig in der Anwendung und die Programmierung in XML ist mühsam. Akademiker lieben XML und XSLT, aber in der Wirtschaft wird es selten verwendet.

25voto

scunliffe Punkte 60080
  1. Sie ist extrem ausführlich
  2. Es ist schwer nachzuvollziehen (in einem komplexen System), wie/wo/warum/wann eine Vorlage aufgerufen wird
  3. Da die Ausgabe wohlgeformt sein muss, können Sie keine Vorlage haben, die den HEAD- oder BODY-Tag "öffnet", den Sie dann später an anderer Stelle wieder schließen müssen. Das ist schlecht, wenn Sie in der Lage sein wollen, Bits von Code in die Warteschlange zu gehen in den HEAD, wenn Sie verarbeiten, was in der BODY sein wird.
  4. Es ist nicht so einfach, sich im Code zurechtzufinden, wie das Verfolgen von Methodenaufrufen
  5. Die Ausgabe eines bedingten IE-Kommentars ist sehr verwirrend mit all den erforderlichen Umlauten
  6. Eine HTML-Zeichenkette durch Anhängen von Bits zu erstellen, funktioniert einfach nicht. Dies kann überwunden werden, indem man die HTML-Zeichenkette Bit für Bit in XSL-Code aufbaut, aber das wird ziemlich komplex.

Vor allem aber (IMHO) fügt es dem Prozess eine zusätzliche Ebene hinzu, die Ihnen nicht viel "einbringt".

z.B. typischerweise haben Sie:

DB > SQL > [JAVA|PHP|ASP|Python|Ruby] > HTML

aber wenn man XML und XSL hinzufügt, kommen Schritte hinzu, die schwer zu rechtfertigen sein können

DB > SQL > [JAVA|PHP|ASP|Python|Ruby] > XML > XSL > HTML

die Daten in einem praktischen, universell austauschbaren XML-Format zu haben, ist zwar toll, aber wenn man nicht brauchen Sie haben lediglich Schritte hinzugefügt.

Ich sollte XSL nicht zu sehr kritisieren, denn ich benutze es ständig und schätze einige der leistungsstarken Optionen, die es bietet. Aber für jeden, der sich entscheidet, es zu benutzen, sollte man sicher sein, dass man ein brauchen bevor Sie eintauchen.

7voto

dacracot Punkte 21242

Blizzard Entertainment scheint XSLT zu mögen. Ihr World of Warcraft Rüstkammer Die Website ist vollständig damit realisiert. Schauen Sie sich die Website mit Hilfe von view source an.

6voto

Brian Agnew Punkte 260470

Ich denke, dass ein Teil des Problems darin besteht, dass die Programmierung in XSLT einige der Eigenschaften einer funktionalen Sprache aufweist (siehe diese Antwort warum sie nicht voll funktionsfähig ist).

Als solches erfordert es eine andere Herangehensweise als die "übliche" imperative Denkweise, und das wird einige Leute davon abhalten, es vollständig zu erforschen (ich lehne übrigens funktionale Programmierung nicht ab, aber in der Web-Client/Server-Welt ist es nicht das gängigste Paradigma).

In der Java-Welt galt sie früher als langsam und speicherhungrig. Ich bin mir sicher, dass dies zum Teil anekdotisch war und vielleicht auch ein Effekt der frühen VMs. Ich stelle jedoch fest, dass Hardware-XML-Beschleuniger verfügbar und sitzen hinter der JAXP-Schnittstelle, also gibt es vielleicht noch ein Geschwindigkeitsproblem?

4voto

Electro Punkte 2864

Es gibt einige Probleme bei der Einführung von XSLT, unter anderem Browserprobleme. So blockiert beispielsweise das Firefox-Plugin NoScript, das zum Blockieren von bösartigem JavaScript entwickelt wurde, auch XSLT auf unbekannten Seiten. Vergessen Sie nicht, dass der Wechsel zu einer Subdomain oder einem anderen Protokoll vom IE als Verstoß gegen dieselbe Herkunftspolitik gewertet wird. Dennoch ist XML+XSLT, auch wenn es nur für eine begrenzte Anzahl von Fällen gilt, recht nützlich. Siehe WoW Website als Beispiel für gut implementiertes XML+XSLT.

4voto

tuinstoel Punkte 7244

XSLT ist nicht einfach.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X