Ankündigung

Einklappen
Keine Ankündigung bisher.

alternative zu Frames

Einklappen

Neue Werbung 2019

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

  • alternative zu Frames

    Hallo Community,
    ich bin zwar kein blutiger php-Anfänger mehr, aber die Frage, die ich stellen werde gehört sicherlich eher hier hin :wink:

    nach benutzen der Suchfunktion scheint es so zu sein, dass es (mal von den Nachteilen abgesehen) keine vernünftige alternative zu frames gibt.
    Ich frage jetzt trotzdem erneut nach, da viele von den Threads später auf ein völlig anderes Ergebnis kamen als das gefragte war und ich somit keiner schönen Erklärung für diese These folgen konnte.

    Div scheint ja eine Möglichkeit zu sein, scheidet für mich jedoch aus, da dort ebenfalls die gesamte seite neugeladen wird. Ich würde jedoch gerne nur den "main"-Frame neuladen.

    Grobes Beispiel:
    Code:
               Banner
             ---------
            |
    links   | main
            |
    Wenn ich jetzt auf einen Link klicke, möchte ich nur den "main"-Part neugeladen haben, da das Banner etc. Möglicherweise zu Traffic-Intensiv sein könnten.

    Genug von HTML, kommen wir zu den scripten:
    - Habe ich mit der Kombination html-php-css eine Möglichkeit, Frames zu ersetzen?
    - Falls nicht: kann ich die Frames (vll. mit css oder php? ) so aneinander legen, dass ich z.b. eine Tabelle im "Banner" und eine im "main" habe, und diese übergangslos ineinander übergehen? (die in main ist kein problem, da ich sie in die obere, linke Ecke kleben kann - aber die im Banner kann ich nicht in die untere linke kleben - zumindest zeigt der FF das dann nicht so an. IE & Opera habe ich noch nicht ausprobiert.

    Ich hoffe die Frage wahr verständlich

  • #2
    Re: alternative zu Frames

    Zitat von Verion1
    Div scheint ja eine Möglichkeit zu sein, scheidet für mich jedoch aus, da dort ebenfalls die gesamte seite neugeladen wird.[...]
    Wenn ich jetzt auf einen Link klicke, möchte ich nur den "main"-Part neugeladen haben, da das Banner etc. Möglicherweise zu Traffic-Intensiv sein könnten.
    Das Banner landet im Idealfall im Cache des Browsers und wird nicht jedesmal neu geladen. Du denkst dir Probleme aus wo keine sind

    - Habe ich mit der Kombination html-php-css eine Möglichkeit, Frames zu ersetzen?
    So wie du dir das vorstellst: Nein.
    Wenn du dir mal klar darüber wirst was PHP eigentlich genau macht, dann wird dir auch bewusst werden warum.

    Wenn dir soviel daran liegt, dann kannst du mit Hilfe von JavaScript (Stichwort: "Ajax") Daten nachladen.

    Kommentar


    • #3
      Danke für die fixe Antwort.

      Das Banner landet im Idealfall im Cache des Browsers und wird nicht jedesmal neu geladen. Du denkst dir Probleme aus wo keine sind Wink
      okay, klar, damit kann ich dann doch wieder zurück auf meine geliebte Tabellenstruktur.

      So wie du dir das vorstellst: Nein.
      Wenn du dir mal klar darüber wirst was PHP eigentlich genau macht, dann wird dir auch bewusst werden warum.
      Nur um es zu verstehen: Liegt es daran, dass php serverseitig verarbeitet wird und somit vor css und html schon abgearbeitet ist?

      Wenn dir soviel daran liegt, dann kannst du mit Hilfe von JavaScript (Stichwort: "Ajax") Daten nachladen.
      Danke, werde ich mir mal anschauen.

      Du hast mir jedenfalls schon gut weitergeholfen. Die letzte Frage hat sich damit auch schon erledigt, da ich der Frames-Idee jetzt wieder absagen werde.

      Verion

      Kommentar


      • #4
        Auf Frames solltest Du auch verzeichten, weil Frames immer von Suchmaschinen benachteiligt werden, und sei es nur beim Pageranking (hat damit zu tun, wie Links bewertet werden und die bleiben halt bei Frames stehen (z.B. Menüframe).

        Liegt es daran, dass php serverseitig verarbeitet wird und somit vor css und html schon abgearbeitet ist?
        Yes! Ich denke auch, das Ajax die einzige Möglichkeit sein könnte. Überlege Dir, ob der Aufwand wirklich notwendig ist.

        Kommentar


        • #5
          Ich habe es auf meiner Homepage so gemacht. Also das ganze, was nur 1 mal geladen werden soll ganz normal in HTML programmiert und beim restlichen ein bisschen PHP.
          Da wo der Inhalt erscheinen soll tu ich die Datei inhalt.php includen.
          In der inhalt.php steht folgendes.

          PHP-Code:
          <?
          if ($_GET[site]=="kontakt") {
          ?>

          <?
          }
          elseif ($_GET[site]=="impressum") {
          ?>

          <?
          }
          else {
          ?>

          <?
          }
          ?>
          Schau einfach mal, wie ich auf meiner Homepage das Menü verlinkt habe.

          Kommentar


          • #6
            Man sollte wenn es möglich ist immer Code vom Design trennen. Also nicht einfach den PHP-Code ins HTML reinschreiben, das kann ne Menge Probleme geben.
            Du solltest, wenn das Projekt etwas größer ist, eine Template Engine verwenden.
            Hier ein Übersicht: http://www.sitepoint.com/forums/show...hreadid=123769
            Und der Wikipedia-Artikel: http://de.wikipedia.org/wiki/Templat...mplate_Engines

            Ich persönlich verwende die HTML_Template_IT Engine von PEAR. Sie ist einfach, arbeitet mit Blöcken (ist für den Template Designer einfacher) und schnell zu erlernen.
            mfg RudiS

            Kommentar


            • #7
              Hi.

              Es gibt auch Lösungen, die bei jedem Request den Status vom letzten Request wiederherstellen und du im Code dann einzelne Segmente austauschen kannst, eben so, wie man es mit JavaScript bei Frames macht, nur dass die Seite natürlich schon komplett geladen werden muss (bis auf die Komponenten, die gecached werden konnten und auch wurden). Siehe Prado.

              Tabellen solltest du mal schnell wieder vergesen - es sei denn, du magst eben Tabellen (tabellarische Daten) darstellen. Über das Thema gibts massig Futter im Netz.

              @RudiS:
              PHP darf gerne in den Templates enthalten sein, denn genau zu diesem Zweck wurde PHP ja entwickelt. Wichtig ist nicht dieTrennung von "Code und Design", denn damit kannst du nichts anfangen. Wichtig ist die Trennung von Darstelluns- und Geschäftslogik, auch wenn die Trennlinie nicht immer ganz scharf ist (Beispiel das Sortieren von (vor allem mehrseitigen) Tabellen).

              Basti

              Kommentar

              Lädt...
              X