Peter: nur Seitenteil mit geänderten Daten neu laden??

Hallo!

Ich habe eine Frage zur Aktualisierung einer Webseite. Und zwar ist die Seite wie folgt aufgebaut:

  • oben ein gif-Banner über die ganze Seitenbreite (wird im Header per php include eingebunden)
  • über dem unteren Teil des Banners liegt eine vertikale textuelle Linkliste mit mouse-over Effekt (der jeweils geöffnete Link wird andersfarbig dargestellt)
  • darunter der Inhaltsbereich (aufgebaut mit einem Bild links und Text rechts; je nach Unterseite unterschiedlich)
  • darunter wieder ein gif über das eine weitere vertikal angeordnete Linkliste liegt (wird im footer per php include eingebunden)

Nun folgendes: Im Firefox 1.0.7 sowie im Safari werden beim Klick auf einen Link nur die jeweils geänderten Daten aktualisiert, sprich der Link verfärbt sich und der Content-Bereich wird aktualisiert. So ist das wunderbar!!

Im IE6 sowie Opera 8.5 wird allerdings jedes Mal die komplette Seite neu geladen, also auch die Bereiche, die sich nicht verändern. Das nervige daran ist, dass die Seite für den Bruchteil einer Sekunde komplett verschwindet ehe sie wieder mit den Änderungen erscheint.

Meine Frage: Kann man das irgendwie abstellen? Eigentlich sollte das ja möglich sein, denn bei anderen Webseiten (z.B. Web.de) wird ja auch immer nur der Bereich neu geladen, der sich ändert... Also hat jemand ne Ahnung, wie ich das anstelle??

Wäre super, wenn mir da jemand weiterhelfen könnte...

  1. Moin!

    Nun folgendes: Im Firefox 1.0.7 sowie im Safari werden beim Klick auf einen Link nur die jeweils geänderten Daten aktualisiert, ...

    Nein, das kommt dir nur so vor. Zumindest Firefox wartet mit dem Anzeigen der neuen Seite gern so lange, bis er alle dazu nötigen Daten geladen hat. Und dann zeigt er die geänderte Seite "auf einen Schlag" an. Er lädt aber trotzdem die komplette Seite neu (wenn man mal davon absieht, dass einige Bilder und ähnliche Elemente natürlich gleich aus dem Cache kommen und nicht neu angefordert werden).
    Vermutlich wendet Safari eine ähnliche Taktik an.

    Im IE6 sowie Opera 8.5 wird allerdings jedes Mal die komplette Seite neu geladen, also auch die Bereiche, die sich nicht verändern. Das nervige daran ist, dass die Seite für den Bruchteil einer Sekunde komplett verschwindet ehe sie wieder mit den Änderungen erscheint.

    Über Opera kann ich nichts mit Gewissheit sagen - aber der IE macht es tatsächlich so, dass er erstmal den Fensterinhalt löscht, bevor er die Seite neu anzeigt. Das geht zwar sehr schnell, aber bei komplexen Seiten sieht man es gelegentlich als unschönes Flackern; wenn der Server sehr langsam ist, sieht man eventuell sogar mehrere Sekunden lang nur die im Browser eingestellte Standard-Hintergrundfarbe.

    Meine Frage: Kann man das irgendwie abstellen?

    Nein.

    Eigentlich sollte das ja möglich sein, denn bei anderen Webseiten (z.B. Web.de) wird ja auch immer nur der Bereich neu geladen, der sich ändert...

    Nein. Bei web.de ist es ein typisches Tabellen-Layout. Und Tabellen werden selbst im IE erst angezeigt, wenn der Tabelleninhalt vollständig geladen ist. Deswegen hast du bei solchen Seiten eine kurze Wartezeit, und dann wird der neue Seiteninhalt auch im IE schlagartig neu angezeigt. Dadurch hast du den Eindruck, die Bildpartien, die sich nicht verändert haben, seien gar nicht neu geladen worden. Das ist aber nicht so.

    So long,

    Martin

    1. Erst einmal Danke, für Deine Antwort!

      Nein, das kommt dir nur so vor. Zumindest Firefox wartet mit dem Anzeigen der neuen Seite gern so lange, bis er alle dazu nötigen Daten geladen hat. Und dann zeigt er die geänderte Seite "auf einen Schlag" an. Er lädt aber trotzdem die komplette Seite neu (wenn man mal davon absieht, dass einige Bilder und ähnliche Elemente natürlich gleich aus dem Cache kommen und nicht neu angefordert werden).
      Vermutlich wendet Safari eine ähnliche Taktik an.

      Ah, ok das macht Sinn...warum macht das nicht "jeder" so...*seufz* ;-)

      Über Opera kann ich nichts mit Gewissheit sagen - aber der IE macht es tatsächlich so, dass er erstmal den Fensterinhalt löscht, bevor er die Seite neu anzeigt. Das geht zwar sehr schnell, aber bei komplexen Seiten sieht man es gelegentlich als unschönes Flackern; wenn der Server sehr langsam ist, sieht man eventuell sogar mehrere Sekunden lang nur die im Browser eingestellte Standard-Hintergrundfarbe.

      Hmmm....eingentlich ist die Webseite sehr einfach gestrickt(http://gothmann.netactive.de/wDeutsch/index.php)...

      Nein. Bei web.de ist es ein typisches Tabellen-Layout. Und Tabellen werden selbst im IE erst angezeigt, wenn der Tabelleninhalt vollständig geladen ist. Deswegen hast du bei solchen Seiten eine kurze Wartezeit, und dann wird der neue Seiteninhalt auch im IE schlagartig neu angezeigt. Dadurch hast du den Eindruck, die Bildpartien, die sich nicht verändert haben, seien gar nicht neu geladen worden. Das ist aber nicht so.

      Also mein Layout ist auch generell mit Tabellen erstellt (das CMS hat das so gemacht). Allerdings ist es noch mit einem <div>-Container umschlossen. Müsste der Reload dann nich auch so ablaufen?Das Muster ist wie folgt:

      <table border="0" cellpadding="0" cellspacing="0">
        <tr>
          <td colspan="3" class="blockTop" id="wBlockTop">
            <?PHP include_once($_SERVER["DOCUMENT_ROOT"]."/wDeutsch/wLayout/structure/top.php");?>
          </td>
        </tr>
        <tr>
          <td valign="top">
            <div style="padding:2px;padding-left:8px"><?PHP wShowEditbutton("", "");?></div>

      ---CONTENT---

      </td>
          </tr>
        <tr>
          <td colspan="3" class="blockBottom" id="wBlockBottom">
            <?PHP include_once($_SERVER["DOCUMENT_ROOT"]."/wDeutsch/wLayout/structure/bottom.php");?>
          </td>
        </tr>
      </table>
      </div>

      Ist ne echt nervige Sache, aber irgendwie muss man das kurze "Ausblenden" doch verhindern können bzw. es nicht mehr sichtbar machen können. Wenn man sich andere professionelle Webseite ansieht, ist da doch auch kein Flackern... :(