AJAX - Website auch ohne JS darstellen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • AJAX - Website auch ohne JS darstellen

    Hallihallo,

    zuerst hoffe ich mal, dass der Titel in etwa so aussagekräftig und sinnvoll ist, wie ich mir das erhofft habe :-)

    Nun zu meinem Problem:
    Ich habe ein kleines CMS, welches wie folgt funktioniert:
    Alle Aufrufe werden per htacess auf eine index-datei weitergeleitet, welche wiederrum entscheidet, welche inhalte eigebunden ( zwecks seo ) und durch die templateengine gejagt werden sollen.
    Das funktioniert alles auch schön und gut, allerdings wollte ich vor kurzem eine testversion dieses cms auf ajax umstellen, und zwar so, dass nur einmal eine z.b. start.htm geladen wird, die dann alle inhalte nachlädt.
    Das funktioniert auch wieder ziemlich gut, aber nun wollte ich die beiden sachen verbinden, also die AJAX-Variante mit der 'non-AJAX'-Variante.
    Dabei stellt sich mir folgende Frage: Wie schaffe ich es, mein CMS so aufzubauen, dass bei jedem Seitenaufruf...:
    (a) ... ohne AJAX die komplette Seite geliefert wird, also nicht nur der angeforderte Inhalt, sondern eben die ganze Seite 'außenrum'. quasi das start-template mit entsprechendem inhalt befüllt

    (b) ... mit AJAX nur der angeforderte Inhalt geliefert wird, da der Rest ja schon vorhanden ist und zumindest in diesem Moment nicht verändert wird.


    Ich hoffe mein Problem ist verständlich und jemand hätte mir einen Tipp dazu.

    Freundliche Grüße
    Breezzer

  • #2
    Hm, das wird wohl nur über einen Parameter gehen, den Du an deine Seitenaufrufe anhängst.

    Also
    wenn Aufruf = seite.php?modus=ajax
    dann liefere nur den Inhalt aus

    wenn Aufruf = seite.php
    liefere Template + Inhalt aus

    wie du das genau umsetzt, mußt du aber selbst in deinem System gucken.
    Beachten: Ajax-Aufrufe werden grundsätzlich in UTF-8 ausgeliefert! Wenn deine Seite nicht schon auf UTF-8 basiert, solltest Du dir darüber rechtzeitig Gedanken machen.

    Kommentar


    • #3
      Original geschrieben von pekka
      Beachten: Ajax-Aufrufe werden grundsätzlich in UTF-8 ausgeliefert!
      Was meinst du damit?

      In welcher Kodierung er eine Ressource ausliefert, entscheidet der Server.
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        ich baue meine Seiten primär so das sie ohne JS richtig dargestellt werden. Dann arbeite ich mit JQuery oder Prototype, welche sehr gute Replace Werkzeuge bereitstellen um die Seite dann zu manipulieren, zum Beispie um Ajax oder andere Effekte einzusetzten.

        Wenn kein JS vorhanden ist, dann setzt ja auch die Replace Methode von JQuery oder Prototype ein.

        Kommentar


        • #5
          Original geschrieben von Laire
          Wenn kein JS vorhanden ist, dann setzt ja auch die Replace Methode von JQuery oder Prototype ein.
          das klingt ja interessant, dann wird also ohne ajax einfach prinzipiell per preg_replace nach einem platzhalter gesucht und dort dann der inhalt eingesetzt?
          aber woher wissen die programme dann wieder, ob ajax nun gefragt ist oder nicht? Das geht ja dann bestimmt auch wieder über einen Parameter, so wie es pekka vorgeschlagen hat.

          ich hab mir das jetzt ein paar mal durch den kopf gehen lassen und muss sagen, dass es eigentlich garnicht so schlecht klingt.

          danke schonmal an alle, über weitere antworten würd ich mich trotzdem freuen

          Kommentar


          • #6
            Das macht man normalerweise über Links.

            <a href="seite_mit_vollem_template.php" onclick="ladeSeiteMitAjax(); return false">

            ohne Javascript wird zur Zielseite gegangen;
            mit Javascript wird der Inhalt per Ajax geladen und die Bearbeitung des Links dann abgebrochen (return false).

            Kommentar


            • #7
              Original geschrieben von wahsaga
              Was meinst du damit?

              In welcher Kodierung er eine Ressource ausliefert, entscheidet der Server.
              Die XMLHttpRequest-Methode liefert meines Wissens immer und ausschließlich in UTF-8 aus; ist die Ressource anders Kodiert, gibt es erfahrungsgemäß Ärger. Lasse mich hier aber gern korrigieren.

              Kommentar


              • #8
                Original geschrieben von pekka
                Die XMLHttpRequest-Methode liefert meines Wissens immer und ausschließlich in UTF-8 aus; ist die Ressource anders Kodiert, gibt es erfahrungsgemäß Ärger. Lasse mich hier aber gern korrigieren.
                Na dann, schau mal hier: http://www.w3.org/TR/2006/WD-XMLHttp...xmlhttprequest

                ...
                responseText of type DOMString

                If the readyState attribute has a value other than 3 (Receiving) or 4 (Loaded), it MUST be the empty string. Otherwise, it MUST be the the body of the data received so far, interpreted [color=blue]using the character encoding specified in the response[/color], [color=red]or UTF-8 if no character encoding was specified[/color]. Invalid bytes MUST be converted to U+FFFD REPLACEMENT CHARACTER.

                Kommentar


                • #9
                  Original geschrieben von asp2php
                  Na dann, schau mal hier: http://www.w3.org/TR/2006/WD-XMLHttp...xmlhttprequest
                  Gut zu wissen, danke!

                  Kommentar

                  Lädt...
                  X