Frage

Ich habe einen Zweifel: - Gibt es eine Standard / Konvention, dass wann sollte ich „Smarty Template“ verwenden und wann sollte ich verwenden Javascript Ajax fordert den Inhalt zu produzieren? Ich kann verwenden Ajax / JavaScript ruft den Inhalt dynamisch zu erzeugen.

Meine Anwendung verwendet sowohl Ajax und Smarty , aber ich möchte eine Regel für Entwickler setzen

War es hilfreich?

Lösung

Sie sollten nur verwenden AJAX ruft dynamische Daten zu laden, die zur Zeit nicht die Seite bekannt ist, geladen. Zum Beispiel, wenn Sie den Link „Kommentare“ für eine bestimmte Frage / Antwort auf Stack-Überlauf klicken, wird ein AJAX-Aufruf gemacht, um dynamisch die Daten zu laden. Dies ist ein Ergebnis des Benutzers, die einen Link zu klicken, nicht ein Ergebnis des Ladens der Seite. Sie wissen nicht, dass Sie die Seite, diese Kommentare zu der Zeit zeigen sollten geladen wird, so ist es angebracht, einen AJAX-Aufruf in diesem Fall zu machen.

Sie sollten Verwendung Templat alle Daten zeigen, die zur Zeit bekannt ist, die Seite geladen wird . Es macht es einfacher, mit Leuten zu tun, die Javascript deaktiviert hat (ich weiß, nicht viel), und es gibt eine klare Trennung der Logik von der Präsentation. Ein weiterer wichtiger Vorteil von Templat ist die Tatsache, die wesentlich ist, kann die Anzahl der HTTP-Anfragen von der Client-Browser gemacht verringern.

Dies ist besonders wichtig in der mobilen Browser-Welt, in der Latenz, nicht Bandbreite, Ihr größtes Hindernis ist. In der mobilen Safari zum Beispiel eine einzelne HTTP-Anforderung an einer Smarty-Templat-Seite deutlich schneller als eine Anfrage lädt eine Javascript-Templat-Seite zu laden, die fünf oder sechs weitere HTTP-Anfragen macht. Dies gilt insbesondere, wenn EDGE, 3G und andere Nicht-Wi-Fi mobile Datendienste. In der Tat ist dies so wichtig, dass es die erste Richtlinie in Yahoos ist Best Practices für die Beschleunigung Ihrer Website .

Im Idealfall sollten Sie auch graziös Funktionalität verschlechtern, wenn Javascript deaktiviert . Ein gutes Beispiel ist ein Auto-Vervollständigung Suchfeld ein. Es ist wirklich cool zu vorgeschlagen Suchbegriffe magisch zu haben scheint, wie Sie schreiben, aber wenn Sie Javascript deaktivieren, haben Sie immer ein funktionelles Suchfeld haben. Das ist ein klassisches Beispiel für einen guten Abbau im Service. Stapelüberlauf hat im Allgemeinen einen guten Job ein festes Nicht-Javascript-Erlebnis. Ein Ort, um es kurz fällt, ist in den Kommentaren. Wenn Javascript deaktiviert ist, werden nur die beliebtesten Kommentare angezeigt werden, und neue Kommentare veröffentlichen ist deaktiviert.

Es sei denn, absolut notwendig, Sie von Javascript als Bonus-Feature denken sollte, die nicht aktiviert werden könnten, nicht als etwas, das verwendet werden soll, kritische Teile Ihrer Webseite zu konstruieren. Es gibt natürlich Ausnahmen (einige Dinge können einfach nicht ohne Javascript erfolgen). Sie werden zum Beispiel feststellen, dass Stack-Überlauf sehr brauchbar ist mit Javascript ausgeschaltet. Sie werden nicht die Echtzeit-Updates erhalten, wenn neue Antworten gepostet werden, oder ausgefallene Echtzeit Markdown Vorschauen, aber die Kernfunktionalität immer noch da. All „schweres Heben“ mit HTML und CSS getan. Javascript ist nur Sahnehäubchen (zugegebenermaßen sehr gut Eisbildung) auf dem Kuchen. Dies ist eine Art von einer Seite zur Kenntnis, aber es ist wichtig genug, um ganz zu schweigen.

Andere Tipps

Es hängt wahrscheinlich auf, welche Art von Arbeit, die Sie in Ihren Vorlagen tun. Ich persönlich hasse es streng in Javascript viele schweren Stil / Layout Sachen zu tun. Wenn Sie den Großteil Ihrer Layout über laden können. Smarty und nur bestimmte Bits von Daten zu ändern (nur die Daten , nicht das Markup / style, wenn möglich), die ein guter Ort, um mit für die Standardisierung innerhalb der eigenen Entwicklerteam sein könnte.

Verwenden Sie Vorlagen für die serverseitige Generierung und DHTML / AJAX für alles, was nach der ursprünglichen Seite zu laden (nicht mit einem Refresh). Selbst dann der Server-Antwort für die Ajax-Aufruf selbst mit einer Vorlage zusammengesetzt werden können, die für jede nicht-triviale Inhalte am besten funktionieren kann.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top