HTML für Ausgabe von aktiven Anwendungen

AliManali

cpt sunday flyer
Thread Starter
Mitglied seit
07.03.2012
Beiträge
4.570
Ort
Ostschweiz
Hi

Ich habe in letzter Zeit mehrfach beobachtet, wie für aktive Anwendungen am Frontend eine HTML Seite angefordert wird, wie hier im Luxx Forum z.B. . Auch für Webshops habe ich das schon gesehen.

Was hat es damit auf sich? Bei meinen aktiven Anwendungen werden meist direkt die PHP oder ASP Scripts aus dem Browser aufgerufen.

Bei einem PHP Statistik Skript hatte ich sowas Mal: da konnte man in einer PHP Anwendung in einer HTML Seite das Design der Ausgabe anpassen. Die HTML Seite wurde dann schlussendlich auch über das aufgerufene PHP Script mit eingebunden.

Aber wie realisiert man das aber bei in einem Forum, bzw. einem Webshop?

Ich stelle mir das mit HTML sehr praktisch vor, gerade auch im Hinblick auf SEO. Mit aktiven Webshop's ohne festen Seiten für die Produkte ist das echt mühsam mit SEO. Da habe ich schon rumgebastelt: alles habe ich versucht (OsCommerce 2.2)... Schlussendlich gebracht hat's nicht viel.

Z.B. bei einem Webshop, gibt es da die Möglichkeit, für jedes Produkt dann auch eine eigene Seite abzulegen? Oder wird das HTML Gerüst wirklich nur zur Ausgabe verwendet, und der Inhalt liegt nach wie vor nur in einer Datenbank?

Cool wär halt z.B. ein Shop, wo die Produkte in HTML vorlägen, und der Warenkorb und solche Sachen dann natürlich auf dem Server laufen. So stelle ich mir das bislang vor, nur habe ich noch keine Erfahrungen machen können damit.
 
Zuletzt bearbeitet:
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Schau dir mal den Quelltext dieser Seite etwas genauer an. Es wird nicht wirklich eine echte HTML Seite angefordert. Du bekommst vom Server eine fast leere HTML Seite mit diversen Java Scripten (AJAX) ausgeliefert. Diese Scripte melden sich sofort beim Server und bekommen den Inhalt der Seite übermittelt.

Man kann mit AJAX auch einen Webshop oder ähnliches basteln bzw wird es da auch schon fertige Shops für geben. Für SEO ist es völlig unerheblich ob du richtige HTML Seiten hast oder ob die Seiten vom Server generiert werden.
 
Ich habe in letzter Zeit mehrfach beobachtet, wie für aktive Anwendungen am Frontend eine HTML Seite angefordert wird, wie hier im Luxx Forum z.B. . Auch für Webshops habe ich das schon gesehen.
HTML ist das einzige, was Webbrowser (Chrome, FF, ...) interpretieren können. So ziemlich jede Webseite im Internet basiert auf HTML; die Herkunft der Inhalte ist dabei irrelevant.

Bei meinen aktiven Anwendungen werden meist direkt die PHP oder ASP Scripts aus dem Browser aufgerufen.
Es wird lediglich gesendet und empfangen.
Vereinfacht gesagt verläuft das so:
- du sendest einen Request an einen Server (z.B. "hardwareluxx.de/index.php")
- am Server "lauscht" ein Dienst (z.B. Apache, NodeJS, etc.) auf einen bestimmten Port. I.d.R. laufen die meisten Anwendungen über Port 80, wodurch die genannte URL eigentlich "hardwareluxx.de:80/index.php" ist, das wird jedoch automatisch vom Browser mitgeschickt
- dieser Dienst weiß, was er mit dem Request anfangen soll und jagt die angeforderte Datei, in diesem Fall die "index.php", durch einen PHP Interpreter
- der Interpreter liefert eine Antwort aus dem Script
- diese Antwort (Response) wird vom Server an den Client der den Request gesendet hat zurückgeliefert und dargestellt

Ein Response kann natürlich nicht nur HTML sein; es kann z.B. auch eine PDF-Datei, JSON, ein einfacher Response Code (z.B. 404) sein, eine ZIP-Datei oder was auch immer. Im Endeffekt aber greift dein Browser niemals direkt auf eine PHP (oder ASP, JS, ...) Datei zu - er wüsste nicht was er damit anfangen soll. Er schickt lediglich Anfragen an einen Server der dann entsprechende Antworten schickt. Bildlich gesprochen würde das so aussehen: https://upload.wikimedia.org/wikipedia/commons/5/51/PHP_funktionsweise.png

Bei einem PHP Statistik Skript hatte ich sowas Mal: da konnte man in einer PHP Anwendung in einer HTML Seite das Design der Ausgabe anpassen. Die HTML Seite wurde dann schlussendlich auch über das aufgerufene PHP Script mit eingebunden.
Im Regelfall werden heutzutage Template Systeme (https://de.wikipedia.org/wiki/Template-Engine) für die Ausgabe verwendet. Zwar kann man HTML direkt in PHP-Dateien packen, was aber im Endeffekt ziemlicher Nonsense ist (schlechte Wartbarkeit, unübersichtlich, etc.).

Aber wie realisiert man das aber bei in einem Forum, bzw. einem Webshop?
Meist werden hierfür relativ komplexe Frameworks eingesetzt, die u.A. auch über eine Template Engine verfügen. Über bestimmte Design Patterns (allem voran MVC) bleibt die Software konsistent und wartbar.
Um Inhalte dynamisch zu laden werden JS-Frameworks (wie Ember, Angular, etc.) verwendet. Dabei werden sogenannte AJAX-Requests an den Server geschickt (die funktionieren genau so wie oben genannt, liefern jedoch dann meist nur JSON oder so zurück). Das JS-Framework kümmert sich dann um die Modifizierung des DOMs und die Einbindung der frisch geladenenen Elemente.

Z.B. bei einem Webshop, gibt es da die Möglichkeit, für jedes Produkt dann auch eine eigene Seite abzulegen? Oder wird das HTML Gerüst wirklich nur zur Ausgabe verwendet, und der Inhalt liegt nach wie vor nur in einer Datenbank?
Ein AJAX Request in jQuery kann zB wie folgt aussehen:

Code:
$.ajax({
  url: "/products/all",
  method: "GET",
}).done(function(data) {
  /* do something with data */
});

Damit würde man, sofern der Server bei einem Request auf "products/all" entsprechend antworten, alle Produkte erhalten. Die data-Variable der done-Methode enthält dann was man vom Server zurückbekommt; ob das nun HTML, JSON, wasauchimmer ist, ist egal. Man muss es nur entsprechend handeln um einen gewünschten Effekt zu erzielen.

Anmerkung: es ist absolut KEINE gute Idee in einer komplexeren Anwendungen jQuery für AJAX Requests zu verwenden. jQuery ist zur Modifizierung des DOMs, nicht für das Verwalten von Inhalten. Wie schon gesagt gibts dafür Frameworks wie Angular, Backbone, Ember, etc..

Cool wär halt z.B. ein Shop, wo die Produkte in HTML vorlägen, und der Warenkorb und solche Sachen dann natürlich auf dem Server laufen. So stelle ich mir das bislang vor, nur habe ich noch keine Erfahrungen machen können damit.
Prinzipiell keine gute Idee. Im Normalfall werden Daten vom Server als JSON bereitgestellt und dann, wie schon erwähnt, von einem JS-Framework eingebunden. HTML vom Server dynamisch nachzuladen hat Wartbarkeitsnachteile und kann daher zu Problemen führen.

Ein Beispiel dazu:
Man hat eine einfache Liste und will alle Inhalte dieser Liste dynamisch laden.

Das HTML dieser Liste sieht wie folgt aus
Code:
<ul id="products"></ul>

Über JS werden dann die Inhalte dynamisch geladen
Code:
$(function() {
  $.ajax({
    url: '/products/all',
	method: 'GET'
  }).done(function(products) {
    $.each(products, function(product) {
	  $('#products').append('<li>' + product.name + '</li>');
	});
  });
});

Und unser Server müsste beim Aufruf von "products/all" wie folgt aussehen (in PHP):
Code:
<?php
$products = [
  [
	"name" => "Produkt 1"
  ],
  [
	"name" => "Produkt 2"
  ],
  [
	"name" => "Produkt 3";
  ]
];

header('Content-Type: application/json');
echo json_encode($products);

Damit wäre unser Response vom Server JSON und unsere Liste würde im Endeffekt 3 Produkte beinhalten. Man sollte beachten, dass es sich hierbei nur um ein Beispiel handelt was ich schnell aus dem Kopf gebastelt habe; bitte nicht glauben, real sieht das 1:1 so aus (es fehlt die Nutzung von Frameworks, wie gesagt ist jQuery nicht wirklich gut für sowas, etc.) - aber für ein Beispiel reicht es.

Natürlich könnte der Response vom Server direkt auch so aussehen:
Code:
echo '<li>Produkt 1</li><li>Produkt 2</li><li>Produkt 3</li>';

Das JS müsste dann etwas modifiziert werden:
Code:
$(function() {
  $.ajax({
    url: '/products/all',
	method: 'GET'
  }).done(function(products) {
	  $('#products').append(products);
  });
});

Wie aber schon gesagt bindet man sich damit daran, dass der Server immer das richtige HTML liefert. Will man nun z.B. den <li>-Elementen der Produkte eine Klasse mitgeben muss man das dem Server sagen - und das ist weder gut noch schön gelöst.

Schau dir mal den Quelltext dieser Seite etwas genauer an. Es wird nicht wirklich eine echte HTML Seite angefordert.
Doch. Unechtes HTML existiert nicht (zumindest nicht in den Browsern die ich so kenne und nutze :fresse: )

Du bekommst vom Server eine fast leere HTML Seite mit diversen Java Scripten (AJAX) ausgeliefert.
Das stimmt so, aber die Antworten in Threads werden hier nicht über AJAX geladen sondern direkt mitgeliefert. Man findet alle Beiträge dieses Threads im für den Client ersichtlichen Code.

Für SEO ist es völlig unerheblich ob du richtige HTML Seiten hast oder ob die Seiten vom Server generiert werden.
Nicht ganz; das Problem ist, dass Google und Co. dynamische Inhalte schlichtweg nicht sehen. Um das zu ändern muss man diverse Vorkehrungen treffen; siehe z.B. SEO Strategies for JavaScript-Heavy Single Page Applications or AJAX Sites | SEW, https://developers.google.com/webmasters/ajax-crawling/docs/learn-more oder https://support.google.com/webmasters/answer/174992?hl=de.
 
Danke für Euere ausführlichen Überlegungen!

Es wird lediglich gesendet und empfangen.
Vereinfacht gesagt verläuft das so:
- du sendest einen Request an einen Server (z.B. "hardwareluxx.de/index.php")
- am Server "lauscht" ein Dienst (z.B. Apache, NodeJS, etc.) auf einen bestimmten Port. I.d.R. laufen die meisten Anwendungen über Port 80, wodurch die genannte URL eigentlich "hardwareluxx.de:80/index.php" ist, das wird jedoch automatisch vom Browser mitgeschickt
- dieser Dienst weiß, was er mit dem Request anfangen soll und jagt die angeforderte Datei, in diesem Fall die "index.php", durch einen PHP Interpreter
- der Interpreter liefert eine Antwort aus dem Script
- diese Antwort (Response) wird vom Server an den Client der den Request gesendet hat zurückgeliefert und dargestellt

Ein Response kann natürlich nicht nur HTML sein; es kann z.B. auch eine PDF-Datei, JSON, ein einfacher Response Code (z.B. 404) sein, eine ZIP-Datei oder was auch immer. Im Endeffekt aber greift dein Browser niemals direkt auf eine PHP (oder ASP, JS, ...) Datei zu - er wüsste nicht was er damit anfangen soll. Er schickt lediglich Anfragen an einen Server der dann entsprechende Antworten schickt. Bildlich gesprochen würde das so aussehen: https://upload.wikimedia.org/wikiped...tionsweise.png
…ist mir schon klar, dass der Browser kein php verarbeitet. Ich meinte damit nur, dass der Browser ein php Script vom Server aufruft. Und im Luxx Forum ruft er ein HTML Script auf. Wenn wir denn schon mal bei diesem HTML Script sind: soweit ich verstanden habe, existiert das HTML Script auf dem Server gar nicht. Solche HTML Files sind mir gar nicht bekannt,… Ich kenne nur solche, welche auf dem Server liegen, und genau so auch an den Browser gesendet werden. Als HTML File, wie es auf dem Server liegt.


Im Regelfall werden heutzutage Template Systeme (https://de.wikipedia.org/wiki/Template-Engine) für die Ausgabe verwendet. Zwar kann man HTML direkt in PHP-Dateien packen, was aber im Endeffekt ziemlicher Nonsense ist (schlechte Wartbarkeit, unübersichtlich, etc.).

…ich nutze sowohl in PHP und ASP Dateien HTML, sowie es erfordert (Chaot halt). Auf der anderen Seite hat es ja extra einen Body. Natürlich schreibst Du da HTML rein. :)
Was nutzt Ihr denn für Editoren? Bei ASP habe ich halt den Vorteil, dass ich durch die IDE von VS ein Art wysiswyg Generator habe. Von dort ist mir das mit dem AJAX auch beiläufig bekannt. Aber ich bin halt mehr alte Schule (ASP ohne NET, ASP.NET von Anfang an). Aber auf der M$ Seite hast Du halt für alles ein Tool, und alles greift ineinander. Für php habe ich das nicht so zur Verfügung, trotz DW und so,..

PHP Sachen mache ich quasi nur im Texteditor (DW). Aber da habe ich nicht viel von der IDE, was automatische Codevervollständigung z.B. in Bezug auf Steuerelementen mit Datenbankanbindungen in mySQL, oder was auch immer. So wie man es von VS halt gewohnt ist. In PHP und mySQL häck ich halt immer irgendwie, aber nicht so wie auf M$,…

Wie wärs dann mit eclipse für php (und event. JSP) für coole Webanwendungen?

Als Serversystem wär ein Hybrid aus ASP.NET und PHP nice. Mit Plesk oder Confixx unter Windows wär eine Möglichkeit. Aber das kostet dann immer für die Updates, das tut einfach weh. Laufen die JSP unter einem einfachen Reseller Hosting mit Confixx? So ein Resellerhosting haben wir. Allerdings auf Linux (ohne ASP).

Wird das Ganze JSP dann unter Tomcat ausgeführt?

Oder wie wärs mit einer Entwicklungsumgebung für PHP/JSP/was weiss auch immer unter Linux? Unter Windows kenne ich mich halt aber echt besser aus...



Das schau ich mir bei Gelegenheit mal an.

Doch. Unechtes HTML existiert nicht (zumindest nicht in den Browsern die ich so kenne und nutze )
Also, exisitiert die Seite auf dem Server nun, oder nicht? Dass da HTML übermittelt wird, ist uns schon klar.


Nicht ganz; das Problem ist, dass Google und Co. dynamische Inhalte schlichtweg nicht sehen.

Aktiv habe ich da schon ziehmlich alles durch, und bin jetzt blöder, wie am Anfang. Das ist echt ein Problem,…
 
Zuletzt bearbeitet:
…ist mir schon klar, dass der Browser kein php verarbeitet. Ich meinte damit nur, dass der Browser ein php Script vom Server aufruft. Und im Luxx Forum ruft er ein HTML Script auf. Wenn wir denn schon mal bei diesem HTML Script sind: soweit ich verstanden habe, existiert das HTML Script auf dem Server gar nicht. Solche HTML Files sind mir gar nicht bekannt,… Ich kenne nur solche, welche auf dem Server liegen, und genau so auch an den Browser gesendet werden. Als HTML File, wie es auf dem Server liegt.
Es gibt keine "HTML Scripte". HTML ist eine reine Auszeichnugssprache die technisch gesehen nichts kann außer Sachen darstellen. Es gibt statische Seiten (z.B. eine "index.html") und es gibt dynamische Seiten (PHP, ASP, whatever). Die Annahme das Luxx wäre "nur HTML" kommt vermutlich von der URL, nachdem die Dateien da vermeintlich auf .html enden. Aber keine Sorge, da steckt im Regelfall einfach nur ein Modul namens mod rewrite dahinter - theoretisch könnte die URL auch "html-fuer-ausgabe-von-aktiven-anwendungen-1087352.hastnochnichtgesehen" sein - Mod Rewrite schreibt das dann brav um so dass der Server damit was anfangen kann.

Was nutzt Ihr denn für Editoren?
Keine Ahnung was man für ASP benutzt, ich habe weder beruflich noch privat mit ASP zu tun. Für Webentwicklung bin ich momentan bei Atom hängen geblieben; wenns mehr als nur ein Editor sein soll nutze ich NetBeans. Java hab ich meistens in IntelliJ geschrieben (nur beruflich) und alles das bissl C++ in Visual Studio.

Als Serversystem wär ein Hybrid aus ASP.NET und PHP nice.
Nunja, mir entzieht sich die Sinnhaftigkeit eines Hybriden dieser Art :/

Oder wie wärs mit einer Entwicklungsumgebung für PHP/JSP/was weiss auch immer unter Linux? Unter Windows kenne ich mich halt aber echt besser aus...
Die Anzahl der Fragen und die schnellen Wechsel der Themen verwirren mich etwas :d aber naja, du kannst unter Windows und unter Linux relative gleiche Verhältnisse schaffen. Gibt Vor- und Nachteile bei beiden.

Also, exisitiert die Seite auf dem Server nun, oder nicht? Dass da HTML übermittelt wird, ist uns schon klar.
Das HTML kann natürlich auch aus einer Datenbank kommen, "real existierend" muss es nicht sein.

Aktiv habe ich da schon ziehmlich alles durch, und bin jetzt blöder, wie am Anfang. Das ist echt ein Problem,…
Willkommen in der Welt der Webentwickler :fresse:
Kurz gesagt musst du im Regelfall dem Crawler der Suchmaschine irgendwas "fertiges" hinwerfen (eine vorgerenderte Version der Seite); https://developers.google.com/webmasters/ajax-crawling/docs/html-snapshot
Crawler mögen das Nachgelade jedenfalls nicht wirklich gerne (kann sein, dass sich das inzwischen geändert hat; wir haben inzwischen eigene SEO Menschen die das machen... ich muss daher auch gestehen, dass ich evtl. nicht mehr ganz aktuell informiert bin und Crawler inzwischen auch schon auf "Load more"-Buttons, etc. klicken und warten bis alles fertig geladen hat).
 
Das Problem ist halt, dass ich keine PHP (und was weiss ich noch alles dazughört) Server/Entwicklungsumgebung habe, mit der das arbeiten ähnlich komfortabel ist wie mit ASP.

Das RAD ist einfach so cool mit VS. Wenn ich was ähnlich gutes für Linux finde, könnte man den alten Zopf (M$) eventuell abschneiden?

Kann ich das z.B. mit Eclipse und JSP erreichen?

Wie gesagt, PHP mache ich bislang nur im Texteditor Modus ;)

Auch für UML Geschichten kenne ich nur für die M$ Seite. Aber OO ist eh nicht so meine Disziplin, ich komme eher noch von der strukturellen Seite (alte Bücher).

Muss auch nicht eine einzelne IDE sein, aber wenn ich das ähnlich komfortabel haben könnte, ohne jedes Mal einen Haufen Geld auszugeben zu müssen, eigentlich, dann wär das fein.

Pläne für Anwendungen auf PHP wären reichlich vorhanden! Das M$ Zeugs braucht halt auch immer so viel Ressourcen, die keiner braucht...
 
Zuletzt bearbeitet:
PHPStorm, gibt nichts besseres für PHP und Frontend im allgemeinen.

:)
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh