it-swarm.com.de

PHP vs JavaScript für dynamische HTML-Seiten

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!

21
Eric

Auf Kundenseite zu tun bedeutet:

  1. In vielen verschiedenen Umgebungen statt in einer einzigen Umgebung
  2. Wenn der Benutzer ohne JS mitkommt (aus welchem ​​Grund auch immer)
  3. Wenn es für die große Mehrheit der Bots (einschließlich Suchmaschinen) nicht funktioniert,
  4. Investieren Sie in die Entwicklung Ihrer gesamten Logik
  5. Der Browser muss zusätzliche Anforderungen an den Server stellen, wodurch die Ladezeiten verringert werden

Bei der Entscheidung, ob Sie etwas Client-Seite anstelle von Server-Seite tun sollten, stellen Sie sich als Faustregel zwei Fragen:

  1. Würde der Benutzer davon profitieren, sofortiges Feedback zu erhalten, wenn er etwas tut? z.B. Eine Fehlermeldung für fehlerhafte Daten in einem Formular, das sie zu senden versuchen. Wenn ja, dann wäre es von Vorteil, es auf der Clientseite zu tun. 
  2. Kann es serverseitig gemacht werden? Wenn ja, machen Sie es zuerst auf der Serverseite, da es zuverlässiger ist (und für nicht kosmetische Dinge schwieriger zu stören ist). Bauen Sie auf Dinge auf, die funktionieren .
40
Quentin

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).

4
El Yobo

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.

4
Charlie Tran

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.

1

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.

0
ygosteli

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.

0
Gort