Matthias: Inhalt nur in Div-Box laden

Hallo zusammen,

ich habe folgende Frage und hoffe, dass jemand mir dabei helfen kann:
Es geht um eine "normale" Homepage, d.h. Wrapper-Div, Head-Div, Navi-Div, Content-Div und Foot-Div. Wenn ich nun einen Link aus der Navigation anklicke, dann öffnet er normalerweise ja eine neue .html-Datei (und alle Bilder laden sich neu). Ist es auch möglich, dass sich die Unterseiten nur in der Content-Divbox öffnen, sodass nicht immer ALLES neu geladen wird?

Danke vorab und beste Grüße aus Hamburg
Matthias

  1. Moin!

    Natürlich kann man mit Jacasript sowas machen. Aber warum? Gewöhnlich sollten Bilder ausm Cache geladen werden, also sofort da sein.

    --
    Vergesst Chuck Norris.
    Sponge Bob kann unter Wasser grillen!
    1. Moin!

      Natürlich kann man mit Jacasript sowas machen. Aber warum? Gewöhnlich sollten Bilder ausm Cache geladen werden, also sofort da sein.

      Ja das stimmt, aber ich finds trotzdem irgendwie nervig. Hab gerade etwas über iframes gelesen. Ist das nicht eine gute Möglichkeit für mein Vorhaben? Ich kenn mich mit Java überhaupt nicht aus, beherrsche nur Html und CSS ein wenig.

      1. @@Matthias:

        nuqneH

        Natürlich kann man mit Jacasript sowas machen. Aber warum? Gewöhnlich sollten Bilder ausm Cache geladen werden, also sofort da sein.

        Ja das stimmt, aber ich finds trotzdem irgendwie nervig.

        Dass die Bilder sofort da sind, findest du nervig?

        Hab gerade etwas über iframes gelesen. Ist das nicht eine gute Möglichkeit für mein Vorhaben?

        Nein.

        Ich kenn mich mit Java überhaupt nicht aus

        Ach so.

        beherrsche nur Html und CSS ein wenig.

        Ach so??

        Qapla'

        --
        Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
        (Mark Twain)
        1. @@Matthias:

          nuqneH

          Natürlich kann man mit Jacasript sowas machen. Aber warum? Gewöhnlich sollten Bilder ausm Cache geladen werden, also sofort da sein.

          Ja das stimmt, aber ich finds trotzdem irgendwie nervig.

          Dass die Bilder sofort da sind, findest du nervig?

          Hab gerade etwas über iframes gelesen. Ist das nicht eine gute Möglichkeit für mein Vorhaben?

          Nein.

          Ich kenn mich mit Java überhaupt nicht aus

          Ach so.

          beherrsche nur Html und CSS ein wenig.

          Ach so??

          Qapla'

          Sie laden zwar sofort, aber es flackert halt immer einmal. Hast du auch noch einen konstruktiven Vorschlag auf Lager oder nur überhebliches Gehabe?

          1. Sie laden zwar sofort, aber es flackert halt immer einmal. Hast du auch noch einen konstruktiven Vorschlag auf Lager oder nur überhebliches Gehabe?

            Schaff dir einen ordentlichen Browser an :)

            Ich kann das beschriebene Verhalten mit den aktuellen Versionen von Opera, Firefox, Internet Explorer, Safari und Chrome nicht reproduzieren. Scheinbar haben mittlerweile alle Browser gelernt, Dokumente schnell und ordentlich zu rendern ohne dass man erst sekundenlang auf Weiß blenden muss.

            Ich würde das Problem also eher vernachlässigen - wer einen Browser hat der flackert, beim dem flackerts ohnehin überall.

  2. Hallo Matthias,
    ich stand heute morgen vor dem gleichen Problem bzw jetzt eigentlich auch noch.
    Hab im Internet (Quelle weiß ich leider nicht mehr) folgendes gefunden:

      
    <!DOCTYPE html  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">  
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">  
    <head>  
    <title>Ajax HowTo-Example</title>  
    <script type="text/javascript">  
         function ladeInhalt(){  
              //das <div> in der Variablen ajaxBox referenzieren  
              var ajaxBox = document.getElementById('ajaxbox');  
      
              // Ajax-Objekt erstellen  
    	  var XMLHTTP = new XMLHttpRequest();  
              // Konnte Objekt nicht erstellen, Fehler ausgeben, und Funktion abbrechen  
    	  if(!XMLHTTP){  
                    // Fehler ausgeben  
    	        ajaxBox.innerHTML = "<span style=\"color:red;\">Konnte Ajax-Objekt nicht erstellen</span>";  
                    // Funktion beenden  
    		return;  
    	  }  
              // Request öffnen  
    	  XMLHTTP.open("GET", "inhalt.txt", true);  
              // Funktion, die bei Änderung des RequestStatus aufgerufen wird  
    	  XMLHTTP.onreadystatechange = function(){  
                    //gebe Text aus, wenn Request vollständig.  
    		if(XMLHTTP.readyState == 4){  
                          // empfangenen Text in das <div> einfügen.  
    		      ajaxBox.innerHTML = XMLHTTP.responseText;  
    		}  
    	  }  
              // Request senden.  
    	  XMLHTTP.send(null);  
         }  
    </script>  
    </head>  
    <body>  
    <h1>Ajax HowTo-Example</h1>  
      
    <div id="ajaxbox"></div>  
    <p><input type="button" onclick="ladeInhalt();" value="Inhalt laden" /></p>  
    </body>  
    </html>
    

    Am Anfang hat das in Google Chrome bei mir funktioniert, aber nach ein paar mal ausprobieren gings dann komischerweise nicht mehr. Scheinbar wurde "XMLHTTP.send(null);" nicht mehr ausgeführt. Im Firefox geht es aber noch.
    Falls du rausfindest, woran das liegen könnte, sag mir doch bitte Bescheid ;-)

    Ach ja, du solltest noch eine inhalt.txt anlegen mit dem Text, der im div ajaxBox ausgegeben werden soll.

    Hoffe, ich konnte dir damit etwas weiterhelfen :-)

    LG it-girl

    1. Moin!

      Ich habe nichts gegen Ajax. Wirklich nicht. Ich finde es ist eine schöne Technik, um der Webseite bestimmte Inhalte zugänglich zu machen. Es ist auch schön geeignet, um das ein oder andere KB Transfer zu sparen. Warum ein Formular mit 250 Feldern übertragen und nur, weil irgendwo eine falsche Zahl angegeben wurde das ganze Monsterteil nochmal laden, wenn ein paar KB für eine Serverantwort per AJAX ausreichen ("Fehler: EMail")?

      Aber: Warum zum Teufel muss man einige Nachteile, die Frames aller Art mit sich bringen mit AJAX verdammt nochmal noch verschärfen? Ich kotze jedes mal, wenn meine technikunbedarfte Schwester mich mit Links bombardiert, die nicht das zeigen, was sie mir zeigen will, sondern schlicht 10x die Startseite des gleichen Internetshops. Noch mehr genervt bin ich allerdings, wenn es nichtmal mir gelingt, ein vernünftiges Lesezeichen oder einen Link zu genereiren, weil da nichtmal ein Frame ist, dem man die Informatin entlocken könnte, sondern ein asoziales JS!

      Verdammt: Niemand muss dynamisch wichtige Inhalte in Divs oder sonstige Elemente laden. Schreibt dann doch bitte eure Seite in Flash, damit jeder sofort weiss: "Hier kommt eine nutzerunfreundliche Mistseite. Geh doch bitte gleich woanders hin." Das erleichtert euch sogar das Erstellen dieser unfreundlichen Webseiten! Damit haette doch jeder gewonnen: Ihr, weil ihr euch eure Seite zusammenklickt und der Nutzer, weil er sie sofort als das identifizieren kann was sie sind: unpraktisches Zeug.

      Ganz ehrlich: Im schlimmsten Fall verursacht ihr damit nur, daß ich (oder jemand anderes) eure Informationen als so interessant betrachte, dass ich sie mir schnappe und dafür eine eigene Webseite erstelle. Falls es sich um eine Firmenseite handelt, die durch tolles Design und oberflächlichen Schnickschnack ihrer Konkurenz voraus sein will, hat sie Pech, wenn die angebotenen Informationen nicht in meinen Lesezeichen landen. Spätestens beim 2. Mal fliegt der Mist aus meinen Bookmarks, weil es nicht hilfreich ist.

      --
      Vergesst Chuck Norris.
      Sponge Bob kann unter Wasser grillen!
      1. @@Steel:

        nuqneH

        [Ajax] ist eine schöne Technik, um der Webseite bestimmte Inhalte zugänglich zu machen. Es ist auch schön geeignet, um das ein oder andere KB Transfer zu sparen. Warum ein Formular mit 250 Feldern übertragen und nur, weil irgendwo eine falsche Zahl angegeben wurde das ganze Monsterteil nochmal laden, wenn ein paar KB für eine Serverantwort per AJAX ausreichen ("Fehler: EMail")?

        ?? Warum sollte man ein fehlerhaft ausgefülltes Formular überhaupt erst an den Server schicken? Wenn sowieso JavaScript im Spiel ist, kann (d.h. sollte) man das Formular auch gleich clientseitig prüfen. Mit HTML5 geht’s dann auch ohne JavaScript.

        sondern schlicht 10x die Startseite des gleichen Internetshops. Noch mehr genervt bin ich allerdings, wenn es nichtmal mir gelingt, ein vernünftiges Lesezeichen oder einen Link zu genereiren, weil da nichtmal ein Frame ist, dem man die Informatin entlocken könnte, sondern ein asoziales JS!

        Es geht mit AJAX auch anders. [Unique URLs]

        Qapla'

        --
        Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
        (Mark Twain)