Normalerweise habe ich, wenn ich dynamisch generiertes HTML-Markup zusammenstelle, die Informationen mit PHP gespeichert und dann durchlaufen, um Elemente auf der Seite zu erstellen. Ein Beispiel ist die Navigation. Erstellen Sie ein Array von Objekten und durchlaufen Sie diese, um das Markup wiederzugeben. Dies ist sehr hilfreich, wenn ich während der Entwicklung oder Wartung geringfügige (oder größere) Änderungen vornehmen muss.
In letzter Zeit habe ich mich gefragt, ob ich stattdessen JavaScript verwenden sollte. Gleiches Prinzip, jedoch mit addElement.
Ich wollte nur ein paar Meinungen dazu bekommen; Vorzüge, Nachteile, PHP gegen Js, SEO-Überlegungen usw.
Danke Leute!
Auf Kundenseite zu tun bedeutet:
Bei der Entscheidung, ob Sie etwas Client-Seite anstelle von Server-Seite tun sollten, stellen Sie sich als Faustregel zwei Fragen:
Es ist weder eine noch die andere Situation; Im Allgemeinen müssen Sie beides tun.
Die Client-Seite wird wahrscheinlich langsamer sein, da der Server noch alle Daten ermitteln muss, der Client sie jedoch wiedergeben muss. Dies erfordert mehrere Anfragen (höchstwahrscheinlich) und die DOM-Manipulation ist langsam (insbesondere bei älteren Browsern).
Es empfiehlt sich, auf dem Server alle erforderlichen Markierungen zu erstellen. Gründe dafür sind:
SEO: Die meisten Crawler-Bots analysieren kein Javascript, sodass sie alle wichtigen Elemente überspringen, die Sie mit addElement generieren.
Accessibility: Ihre Site sollte grundsätzlich ohne Javascript funktionieren. Betrachten Sie Personen, die möglicherweise Ihre Website auf Kindles, älteren Blackberries, Nokias oder anderen Funktionstelefonen mit Daten durchsuchen. Sie brauchen nicht alle ausgefallenen Styles und Effekte, aber sie sollten zumindest in der Lage sein, sich auf Ihrer Website zu bewegen.
Consistency: JS kann eine weitere Ebene der Browser-Variabilität hinzufügen. Warum sollten Sie sich auf das clientseitige Rendern der erforderlichen Markups verlassen? Mach es serverseitig.
Natürlich können Sie diesen Rat in Kauf nehmen, wenn Sie eine All-JS-Desktop-App entwickeln oder etwas wie das Sencha Touch -Framework verwenden.
Wenn es um SEO geht, sind die Dinge einfach: JS wird nicht indexiert.
Es gibt auch Probleme mit der Benutzeroberfläche: Wenn JS nicht aktiviert ist, werden keine JS-abhängigen Daten geladen.
Eine Möglichkeit wäre, festzustellen, welche Art von Benutzer Ihre Website anzeigt:
Wenn es sich um einen Bot handelt: Analysieren Sie auf der Serverseite, können Sie einfach ausgeben, was der Bot benötigt, ohne grafische Elemente, ...
Wenn es sich um ein Mobiltelefon handelt: Zeigen Sie eine für Mobilgeräte optimierte Version, und verwenden Sie beispielsweise Sencha Touch, wie Charlie wies
Wenn es sich um einen Standardbrowser ohne Javascript handelt: Rendern Sie die Seite auf der Serverseite
Wenn es sich um einen Standardbrowser handelt, der mit Javascript aktiviert ist: Senden Sie die Daten einfach vom Server (oder laden Sie sie mit Ajax) und rendern Sie die Daten vom Client
Sie können etwas wie Moustache verwenden. Dies ist eine Template-Engine, die auf vielen serverseitigen Sprachen (PHP, Ruby, Java, ...) ausgeführt wird, aber auch auf Javascript, wodurch das clientseitige Rendern von Seiten ermöglicht wird.
Und versuchen Sie, ein Javascript-Framework wie jQuery , Mootools , Dojo oder ExtJS zu verwenden. Sie helfen Ihnen dabei, Code zu schreiben, der in jedem Browser ausgeführt werden kann.
PHP eignet sich gut für einige Dinge, einschließlich der Erstellung von Vorlagen für Lenkerarten und des schnellen Ersetzens von serverseitigem Inhalt. Es ist jedoch auch nicht besonders gut für einige Dinge, wie zum Beispiel für Einzelseitenanwendungen und Spiele, Echtzeitupdates für Websites. In diesen Dingen ist JavaScript stark.