HTML & CSS - Div's auslagern?

  • war damals ne spieleplattform (uniprojekt), 2 spieler, chat etc.

    hab mir das in der wiki mal zusammengereimt, man braucht ne serverkomponente, auch wenn vielleicht bei vielen webservern schon dabei ist.

    http request ist ja schön und gut, aber der server muss das ja auswerten können.

  • Zitat von Dirk

    man braucht ne serverkomponente


    Nein!

    Zitat von Dirk

    http request ist ja schön und gut, aber der server muss das ja auswerten können.


    Ein HTTP-Server tut HTTP-Requests auswerten. Ajax-HTTP-Requests unterscheiden sich vom Aufbau her keinem einzelnen Bit von gewöhnlichen Webbrowser-HTTP-Requests.

    Das Herzstück von Ajax ist das XMLHttpRequest-API. Man übergibt diesem Objekt einen HTTP-Pfad auf der Domain (z.B: "/ajax.php?getuser=Dirk" oder "/html/footer.html") und setzt einen Callback. Danach startet man den Request, der vom Browser im Hintergrund ausgeführt wird (daher das A in Ajax für asynchron). Sobald der HTTP-Request beendet ist, wird der Callback aufgerufen, mit HTTP-Antwort-Code & HTTP-Inhalt (welcher eine HTML-Seite, aber auch XML oder sonstige Daten sein kann). Dieser Callback entscheidet dann, was er mit den Daten tun will (bei HTML z.B. irgendwo einfügen, bei XML/JSON eher das Zeugs parsen und weiterreichen).

    Mehr ist da nicht. XMLHttpRequest macht im Grunde genau das gleiche wie ein iFrame; es lädt eine "Datei" vom Server - mit dem Unterschied dass die vom Server zurückgegebene Seite nicht direkt angezeigt wird, sondern einer Javascript-Funktion übergeben wird (clientseitig ist XMLHttpRequest natürlich flexibler, weil mehr Parameter verstellen kann).

    Im überigen, ich vermute was du meinst ist REST, das wird häufig mit Ajax kombiniert.

  • So, ich wollte jetzt mit JS den Inhalt im Div austauschen. Aber das klappt nicht :( kann es sein, dass PHP innerhalb eines JS nicht funktioniert?

    PHP
    function ReplaceContent(newContent)
    {
        var container = document.getElementById('content');
        container.innerHTML = '<?php include ("div/' + newContent + '.html"); ?>blablabla';
    }

    In diesem Fall steht im DIV nur "blablabla".

  • Wie DosAmp sagt: PHP wäre eigentlich dynamisch genug, dass du das ohne Javascript machen kannst (also alles serverseitig) - oder wenn du Javascript machst, kannst du auf PHP verzichten (also alles clientseitig).

    In diesem Fall macht es herzlich wenig Sinn, das zu vermischen, bietet die Nachteile beider Systeme, ohne nen Vorteil zu bieten.

    Zum eigentlichen Problem: PHP/HTML in JS geht nicht clientseitig - man kann das schon mischen, dass der PHP-Teil serverseitig ausgeführt wird und JS-Code generiert; macht aber wenig Sinn. Bei dir liegt der Fehler schlichtwegs im Code, schau dir den mal genau an. Die Anführungszeichen kannst du so nicht setzen.

    Nachtrag: Öh.. ja, DosAmp hat mich gerade nochmals darauf hingewiesen, dass das ggf. missverständlich ist. Daher nochmals in aller Deutlichkeit: PHP läuft Serverseitig. Wenn du das Schnippsel so in eine .html-Datei packst, wird das nicht funktionieren.

  • in den fall den du skizziert hast, geht jetzt ohne weiteres nur nen iframe. wie sähe den eure Ajax lösung aus? Ich habe im quiz ne ähnliche stelle, wo ich eine php datei, bzw die daten darin anfodern will.

    Und ich glaube weiterhin nicht das nen normaler webspace sowas bietet, muss schon nen server mit komponente dafür sein, weil ist bestimmt nicht die last von polling einkalkuliert.

  • Zitat von Dirk

    wie sähe den eure Ajax lösung aus?

    Zitat von Dirk

    Und ich glaube weiterhin nicht das nen normaler webspace sowas bietet, muss schon nen server mit komponente dafür sein, weil ist bestimmt nicht die last von polling einkalkuliert.


    Könntest diese absurde Behauptung wenigstens mal irgendwie untermauern? Polling? Wo braucht macht man beim obigen Beispiel denn Polling? Das generiert nicht mehr Seitenaufrufe als ein iFrame auch.

  • Zitat von Dirk

    Ist er nicht, Ajax ist ja serverbasierende schnittstelle. welche informationen sollte ich den dort auswerten?


    Javascript-OnClick -> X+Y an Server, Server->Passendes Bild an Client

    Spoiler anzeigen


    Haupt-Laptop:
    Dell Vostro 3560 - i7-3632QM, 6GB
    Rechenknechte:
    Lenovo - i5, 4GB
    Medion - Pentium Dual Core, 3GB
    IBM T60 - Core Duo, 2GB
    Lenovo T400 - Core2Duo, 2GB
    Server:
    Sony - Pentium M, 512MB
    Unbenutzt:
    Noname - Celeron D, 1GB

  • Ich wusste nicht, dass das schon Ajax darstellt. Für mich war es immer mit richtigen serverkram. egal.

    hab das jetzt mal in den quiz so eingebaut, jetzt erhält man nicht nur ne statistik über alle Spiele im Schnitt, sondern auch wieviele Spieler schon den selben Wert hatten. Wobei man jetzt glaube ich schon mitzählt.

  • Zitat von Dirk

    Ich wusste nicht, dass das schon Ajax darstellt


    Ajax ist, sobald ne geordnete Kommunikation zwischen Client und Server läuft, die nicht mit nem HTTP-Event wie ner Seite, die geladen werden soll etc läuft. Das da im Namen XML drinsteckt is eig unsinnig, weil Javascript eig nicht mit XML umgehen kann, das ist größtenteils Marketing

    Spoiler anzeigen


    Haupt-Laptop:
    Dell Vostro 3560 - i7-3632QM, 6GB
    Rechenknechte:
    Lenovo - i5, 4GB
    Medion - Pentium Dual Core, 3GB
    IBM T60 - Core Duo, 2GB
    Lenovo T400 - Core2Duo, 2GB
    Server:
    Sony - Pentium M, 512MB
    Unbenutzt:
    Noname - Celeron D, 1GB

  • Ich hab keine Ahnung von AJAX.
    Auf Funschrottpic wurde nicht erwähnt, das AJAX verfügbar ist. Das bräuchte ich doch schon?
    Wenn nicht: Wie einbinden (in die Datei ist klar, aber was für eine Dateierweiterung etc.)?

  • Zitat von Pac-Man

    Auf Funpic wurde nicht erwähnt, das AJAX verfügbar ist. Das bräuchte ich doch schon?


    Ich wünschte, ihr würdet gandros Postings genauer lesen. Ajax benötigt einen Webserver und eine Software, die Javascript spricht. Nicht mehr und nicht weniger!
    Außer wenn es so einen krüppeligen Hoster gäbe oder je gegeben hätte, der aus „Sicherheitsgründen“ Javascript aus HTML-Dateien strippt, funktioniert Ajax überall!

  • Zitat von gandro


    Hm? DOM kommt seit jeher mit XML klar..?


    DOM ist die Struktur des (X)HTML-Dokuments. AJAX heist ja aber Asynchronous Javascript and XML. Das heißt, JS schickt nen Päckle XML-Daten los und bekommt irgendwann später nen anderes Päckle XML zurück. Außer direkt ins DOM einbinden kann JS aber mit dem XML net viel anfangen (PHP btw auch nicht <5 Zeilen Code)

    Spoiler anzeigen


    Haupt-Laptop:
    Dell Vostro 3560 - i7-3632QM, 6GB
    Rechenknechte:
    Lenovo - i5, 4GB
    Medion - Pentium Dual Core, 3GB
    IBM T60 - Core Duo, 2GB
    Lenovo T400 - Core2Duo, 2GB
    Server:
    Sony - Pentium M, 512MB
    Unbenutzt:
    Noname - Celeron D, 1GB

  • Zitat von niwax


    DOM ist die Struktur des (X)HTML-Dokument


    Falsch. DOM ist eine API. Mit dieser kann man Dokumente zu parsen. Damit bearbeitet man normalerweise das aktuelle Dokument, wie du gerade erklärt hast, damit kann man aber andere HTML-Dokumente oder eben XML parsen (Beispiel dazu, sogar direkt mit AJAX)

    Lies dir die Specs durch. Bereits im ersten Satz erwähnen sie XML:
    What is the Document Object Model?

    Ich weiss das, weil ich schon mal eine AJAX-Applikation mit XML gemacht habe.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!