Bernhard Alois: Iframes vs. Frames vs. anderen Lösungen?

Hallo.

Wo genau liegt der Vorteil von Inlineframes gegenüber herkömmlichen Frames? Prinzipiell scheinen frames ja verpöhnt zu sein; "veraltet, nicht mehr zeitgemäß, suchmaschinenfeindlich" heißt es da oft. Gilt das auch für iframes? Hab da außerdem schon was von 'include' gehört; - die bessere Lösung?

Danke für eure Stellungnahmen,
Bernhard

  1. Hello out there!

    Wo genau liegt der Vorteil von Inlineframes gegenüber herkömmlichen Frames?

    In Dunkeln. Ich sehe keinen.

    Prinzipiell scheinen frames ja verpöhnt zu sein; "veraltet, nicht mehr zeitgemäß,

    Sie waren es noch nie.

    suchmaschinenfeindlich" heißt es da oft.

    Vor allem nutzerfeindlich.

    Gilt das auch für iframes?

    Ja.

    Hab da außerdem schon was von 'include' gehört; - die bessere Lösung?

    Ja.

    See ya up the road,
    Gunnar

    --
    “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)
    1. Hallo Gunnar,

      Vielen Dank für deine Antwort!
      Habe mich also auf die Suche nach 'include' gemacht, allerdings leider eher mit bescheidenem Erfolg :(

      Habe den Begriff 'include' auf selfhtml.org selbst gesucht und bin auf Dateiendungen (includes), Präformatierten Text formatieren mit CSS (include), bzw. Eingebettete Frames definieren (includes) gestoßen. Begriff ebenfalls gegooglet; - dabei stieß ich auf:

      http://de.php.net/include/

      include = php-Abteilung?

      Ganz naiv gefragt: wie bringe ich mein html-Dokument dazu, dass es auf Mausklick in einem gewissen Bereich meiner Seite content lädt (wie das bei frames eben der Fall ist), OHNE, dass das komplette Drumherum neu geladen wird/geladen werden muss? Ist include dafür überhaupt der richtige Befehl?

      Danke für eure Stellungnahmen!

      1. Ganz naiv gefragt: wie bringe ich mein html-Dokument dazu, dass es auf Mausklick in einem gewissen Bereich meiner Seite content lädt (wie das bei frames eben der Fall ist), OHNE, dass das komplette Drumherum neu geladen wird/geladen werden muss? Ist include dafür überhaupt der richtige Befehl?

        Guten Abend,

        PHP ist eine serverseitige Scriptsprache. Du brauchst also einen Server, auf dem PHP läuft. Erkundige dich bei deinem Webhoster, ob PHP drauf is. Wenn ja, solltest dir eine Einführung in die serverseitige Programmierung besorgen oder im Internet ein Tutorial durchsehn.

        Dann kannst du z.b. mittels übergebener Variablen und deren Auswertung per include od. require gewünschten Content in deine Seite einbinden. Datei Sollte als dateiname.inc.php benannt werden. Ist recht praktisch, um Struktur in grössere Projekte zu bringen. Man zerschnipselt alles in kleine Stücke und setzt dann nach Bedarf zusammen.

        <? und ?> wären die start- und endtags des php-codes (shorttags) - alternativ: <?php ?>.

        kanalgitter vor zeile=kommentar

        /* oder so kommentar */

        Könnte dann etwa so aussehn (grob und ungetestet):

        Du schreibst in deinen html-quellcode z.b. einen Link
        <a href="<?echo $_SERVER['PHP_SELF']; # aktuelles script ausführn ?>?selectid=1">zum gästebuch</a>

        Wird das Script nun per Klick auf den Link ausgeführt, dann übergibst du im Querystring (ab ? im Link / bzw Teil nach url) den Wert 1 unter  Variablennamen selectid per Methode get (Link wird per get übergeben, Formulare wählst du get oder post).

        Mit php kannst du dann ($ kennzeichnet Beginn einer Variable in php) $_GET['selectid'] weiter verarbeiten bzw darauf reagieren und den gewünschten content per include einbinden. Wir wollen aber auch sicher gehn, dass selectid auch wirklich übergeben wurde (per isset):

        if(isset($_GET['selectid'])&&($_GET['selectid']==1)){
          include "guestbook.inc.php";
        }

        deutsch: wenn die variable selectid übergeben wird und Inhalt der Variable 1 entspricht, binde gästebuch in die Seite ein. Bleibt natürlich dir überlassen, ob du 1,2,3 oder a,b,c, strings oder sonstwas verarbeitest.

        Würde man auf unterschiedliche selectids reagieren wollen, dann könnte man das wohl per switch-anweisung eleganter / kompakter:

        if(isset($_GET['selectid'])){
          switch($_GET['selectid']){
            case 1: include "guestbook.inc.php"; break;
            case 2: include "aboutus.inc.php"; break;
            .
            .
            .
            default: break;
          }
        }

        (wenn noch nicht programmiert hast, if und switch sind kontrollstrukturen von php)

        Statt include könntest du auch require verwenden, allerdings bricht dann das Script ab, wenn z.b. die gewünschte Datei nicht auffindbar wäre. Bei include läuft es trotzdem bis Ende.

        Wenn du noch nix mit php zu tun hattest, dann klingt das alles vielleicht etwas verwirrend *g* Aber empfehle dir mal damit zu beschäftigen / anzufangen. So lässt sich alles recht dynamisch gestalten :D

        lG und gutes Gelingen,
        Jonny 5

        1. Hello out there!

          Wenn du noch nix mit php zu tun hattest, dann klingt das alles vielleicht etwas verwirrend

          Allerdings. Bist du nicht etwas übers Ziel hinausgeschossen?

          See ya up the road,
          Gunnar

          --
          “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)
      2. Moin!

        Ganz naiv gefragt: wie bringe ich mein html-Dokument dazu, dass es auf Mausklick in einem gewissen Bereich meiner Seite content lädt (wie das bei frames eben der Fall ist), OHNE, dass das komplette Drumherum neu geladen wird/geladen werden muss?

        Gar nicht!

        Und das ist auch gut so. Einer der Nachteile von Frames ist, dass man Unterseiten nicht bookmarken kann. Also muß eine Unterseite ohne Frames logischerweise alle Bedien- und Navigationselemente enthalten, damit man sie für sich alleine aufrufen kann. Daraus resultiert, dass dein Wunsch nach "Drumherum nicht neuladen" nicht erfüllbar ist, weil genau das doch der Vorteil von frameslosen Seiten sind: Der Benutzer kann jede Seite direkt ansteuern und erhält dort trotzdem alle Elemente der Website.

        Und weil manche HTML-Schreiber es doof finden, dass eine Änderung in der Navigation von ihnen manuell in allen hunderten von Inhaltsseiten durchgeführt werden muß, gibt es eben Automatismen, die das Leben in dieser Hinsicht erleichtern. Dazu gehört eben "Include" - wobei das sowohl im Editor geschehen kann (dann baut der Editor die Navigationsdatei automatisch in alle Inhaltsdateien ein, und man lädt die Website dann komplett hoch), als auch dynamisch auf dem Server (dann fügt eine Sprache wie SSI, PHP, Perl, C,... an der entsprechenden Stelle die Navigation ein).

        Selbst Frames würde man unter diesem Gesichtspunkt als Include-Mechanismus ansehen müssen, denn da fügt dann eben die letzte Stelle, der Browser, Inhalt und Navigation zusammen - nur hat das eben technische Nachteile, weil im Gegensatz zu den anderen beiden Lösungen hier Inhalt und Navigation getrennte Ressourcen sind, die nur durch eine dritte Ressource "Frameset" als zusammengehörend deklariert sind. Das verstehen Suchmaschinen und bookmarkende Browser aber nicht.

        - Sven Rautenberg

        --
        "Love your nation - respect the others."
      3. Hello out there!

        Habe den Begriff 'include' auf selfhtml.org selbst gesucht und bin auf Dateiendungen (includes), Präformatierten Text formatieren mit CSS (include), bzw. Eingebettete Frames definieren (includes) gestoßen.

        Du hättest auf <http://de.selfhtml.org/servercgi/server/ssi.htm@title=SSI (Server Side Includes)> stoßen sollen.

        include = php-Abteilung?

        Nein, nicht unbedingt. SSI reichen völlig. Nur, wenn du für andere Dinge sowieso PHP einsetzen willst ...

        Und wenn PHP, dann nicht unbedingt include(), sondern readfile().

        Ganz naiv gefragt: wie bringe ich mein html-Dokument dazu, dass es auf Mausklick in einem gewissen Bereich meiner Seite content lädt (wie das bei frames eben der Fall ist), OHNE, dass das komplette Drumherum neu geladen wird/geladen werden muss?

        Gar nicht. Es wird die ganze Seite mit „Drumherum“ neu geladen. Und das ist auch gut so.[tm]

        (Die Styleangaben wirst du ja in einer externen CSS-Datei notiert haben, so dass diese nicht neu geladen werden muss.)

        See ya up the road,
        Gunnar

        --
        “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)
  2. Hallo,

    auch auf die Gefahr hin mal wieder gesteinigt zu werden...

    Alles, was du bis dato hier zu dem Thema gelesen hast ist richtig. Wenn du irgendwie auf Frames verzichten tu es!
    Solltest du aber aus technischen Gründen oder mangels Programmierfertigkeiten doch auf frames setzen würde ich auf iframes setzen:

    • wenn du die navi auf jeder Seite mit einem Iframe holst (die links müssen dann target="_parent" bekommen ist jede deiner Seiten individuell und somit bookmarkbar und von Suchmaschinen zu finden
    • ein noframes-Bereich sollte trotzdem definiert werden
    • die Suchmaschinen werden keinen Indexfollow durchführen können, da aber viele Seiten letzendlich im Content noch mal verlinkt sind ist das wohl nicht so schlimm

    bydey

    --
    -- bydey ist die Signatur und Verabschiedung, nicht der Nick --
    -- Navigate all your PHP web projects with  PHP Project Browser--
    1. Hallo,

      Alles, was du bis dato hier zu dem Thema gelesen hast ist richtig.

      na das beruhigt mich. Denn ich setze ab und an gerne Frames ein, und dann ist ja meine Meinung doch entgegen der hier vorherschenden Meinung zumindest ja auch richtig ;-)

      Chräcker

      --
      Erinnerungen?
      zu:]
      1. Hallo,

        Hallo,

        Alles, was du bis dato hier zu dem Thema gelesen hast ist richtig.

        na das beruhigt mich. Denn ich setze ab und an gerne Frames ein, und dann ist ja meine Meinung doch entgegen der hier vorherschenden Meinung zumindest ja auch richtig ;-)

        ???
        In welchem Zusammenhang steht deine Aussage zu dem aus dem Kontext extrahiertem Kommentar von mir.
        Solltest du "hier" als forum.de.selfhtml.org/ interpretiert haben?
        Gemeint war aber ?t=137793.

        bydey

        --
        -- bydey ist die Signatur und Verabschiedung, nicht der Nick --
        -- Navigate all your PHP web projects with  PHP Project Browser--
        1. Hallo,

          In welchem Zusammenhang steht deine Aussage zu dem aus dem Kontext
          extrahiertem Kommentar von mir.

          Ähem, soviel habe ich da gar nicht rausgelassen. Du sagts: alles was er bis dato hier zu diesem Thema gelesen hat, sei richtig.

          Dadrüber stand in Deinem Beitrag nur noch:

          Hallo,
          auch auf die Gefahr hin mal wieder gesteinigt zu werden...

          Wa ich jetzt nicht so Kontexwichtig ansah sondern eher als nettes Intro.

          Also habe ich "du" in "alles was du" auf den Fragesteller bezogen, das "bis dato" habe ich auf "von Anfang an bis heute/jetzt" gelesen und das "hier" als Selfforum bzw Selfraum intepretiert.

          Also beinhaltet das auch meine immer mal wieder gemachten Aussagen "zu diesem Thema", das ich als "Frames/iFrames-Komplex" ansah.

          Chräcker

          --
          Erinnerungen?
          zu:]