Marie: <li id= .. soll erst geladen werden, wenn es aktiviert wird

Hallo liebes Forum, mein Problem ist vielleicht sehr speziell.
Ich habe eine Website, die komplett in einem einzigen HTML-Dokument niedergeschrieben ist, auf verschiedene Javascripts und CSS-Dokumente zugreift und deshalb eben beim ersten Besuch direkt alles lädt, anstatt nur die jeweilige Seite zu laden. Jede Unterseite wird definiert durch ein vorangestelltes: <li id=... z.B.

<li id=home> dann folgen div-Boxen, Bilder und normales HTML <li>
<li id=fotos> dann folgen div-Boxen, Bilder und normales HTML <li>
usw...

Meine Frage:
Kann ich irgendwie vorgeben, dass die entsprechende <li id=...> erst geladen wird, wenn man die entsprechende Unterseite auch wirklich öffnet???

Habt 1000000 Dank für jede Hilfe.

  1. Was Du an den Browser schickst, das lädt er auch.

    Eine Möglichkeit wäre, den Inhalt nicht zu schicken und bei gewissen Events den Content mittels AJAX hochzuladen. Allerdings müsstest Du dann den Content in Dateien unterteilen oder zb. in einer DB speichern.

    Cheers,
    Baba

  2. Hallo Marie,

    ich verkneife mir jetzt die Frage nach dem Warum.

    Da du ja schon Javascript einsetzt, könntest du Teile mit Ajax nachladen.

    Gruß
    Jürgen

  3. Hallo,

    [...] Jede Unterseite wird definiert durch ein vorangestelltes: <li id=... z.B.

    <li id=home> dann folgen div-Boxen, Bilder und normales HTML <li>
    <li id=fotos> dann folgen div-Boxen, Bilder und normales HTML <li>
    usw...

    Meine Frage:
    Kann ich irgendwie vorgeben, dass die entsprechende <li id=...> erst geladen wird, wenn man die entsprechende Unterseite auch wirklich öffnet???

    diesen Inhalt mit AJAX nachladen. Nutze die entsprechende Funktionalität des von Dir verwendeten Javascript-Frameworks, falls Du eines verwendest.

    Freundliche Grüße

    Vinzenz

  4. Hallo liebes Forum, habt vielen Dank für eure Antworten. :-)

  5. مرحبا

    Kann ich irgendwie vorgeben, dass die entsprechende <li id=...> erst geladen wird, wenn man die entsprechende Unterseite auch wirklich öffnet???

    MIt JQuery geht das ganz einfach. Wenn dir PHP zur Verfügung steht, brauchst du nur ein minimalistisches PHP-Script, dass dann die gewünschten Inhalte ausgibt.

    Dann kannst du sowas hier machen:

    $('#result').load('load.php?content=starseite');

    Und in der load.php echost du einfach den Content für "starseite".

    mfg

    --
    Die neuen 4 Jahreszeiten: Frühling, ARSCHLOCH, Herbst und Winter!
    1. Hallo Malcolm,

      Und in der load.php echost du einfach den Content für "starseite".

      Ajax kann auch Dateien direkt lesen, dafür braucht man kein php.

      Gruß, Jürgen

      1. مرحبا

        Ajax kann auch Dateien direkt lesen, dafür braucht man kein php.

        Ja ich weiss. Dann hätte OP aber das selbe Problem wie mit bspw. http://de.selfhtml.org/servercgi/server/ssi.htm@title=SSI. Dann müsste Sie die Inhalte auf einzelne Ressourcen verteilen, um die dann bei bedarf laden zu können.
        Oder aber Sie lädt den gesamten Content in eine Ressource, und wertet diese mit Javascript aus. Das bringt aber mit sich, dass Sie unnötigen Ballast laden muss.

        Wie könnte sie die aufteilung der einzelnen Inhalte mit AJAX sonst lösen?

        Kann ich irgendwie vorgeben, dass die entsprechende <li id=...> erst geladen wird, wenn man die entsprechende Unterseite auch wirklich öffnet???

        PHP wäre hier mein mittel der Wahl, kein Zwang ;)

        mfg

        --
        Die neuen 4 Jahreszeiten: Frühling, ARSCHLOCH, Herbst und Winter!
        1. Hallo Malcolm,

          PHP wäre hier mein mittel der Wahl, kein Zwang ;)

          aber nicht, um direktes Laden einer Ressource durch Laden eines PHP-Scriptes zu ersetzten, das die gewünschte Ressource dann echot. PHP käme für mich nur in Frage, wenn die Inhalte aus einer Datenbank geholt werden sollen. Datenzugriff würde ich direkt mit Ajax durchführen.

          Gruß, Jürgen

          1. مرحبا

            aber nicht, um direktes Laden einer Ressource durch Laden eines PHP-Scriptes zu ersetzten, das die gewünschte Ressource dann echot.

            Mich würde interessieren, wie Javascript die anfordernde Ressource abarbeitet. Nehmen wir folgendes Szenario:

            20 Seiten in einem Projekt, der Content für alle Seiten wird in einer Externen Ressource (content.js) gespeichert. Jetzt könnte man den Content dieser Seiten in einem JSON-Objekt speichern, die frage wäre aber, was genau hier geladen wird, wenn ich diese Ressource mit AJAX anfordere?
            Ich vermute mal content.js wird komplett geladen? Wenn ja, wäre es doch vorteilhafter, wenn nur geladen wird, was wirklich angefordert wird? Unabhängig davon, wie die Daten gespeichert sind.

            mfg

            --
            Die neuen 4 Jahreszeiten: Frühling, ARSCHLOCH, Herbst und Winter!
            1. Hallo Malcolm,

              es soll ja auch nicht alles in einem JS- oder JSON-Dokument liegen. Dann kann sofort alles in das HTML-Gerüst gelegt werden. Der Inhalt muss sinnvoll auf mehrere Dateien verteilt werden, nicht zu viele kleine wegen des Overheads, aber auch nicht wenige große wegen der Ladezeit. Per Javascript / Ajax wird dann immer das nachgeladen, was benötigt wird.

              Gruß, Jürgen

              1. مرحبا

                Der Inhalt muss sinnvoll auf mehrere Dateien verteilt werden, nicht zu viele kleine wegen des Overheads, aber auch nicht wenige große wegen der Ladezeit.

                Genau das will ich ja verhindern. Alles soll Zentral in einer Datei liegen, und in dieser wird nur ausgegeben, was angefordert wird.
                Das ist mit PHP mit wenig Zeilen Code realisiert. Die Daten in einem Array speichern und mittels $_GET-Parameter nur laden, was benötigt wird.

                Per Javascript / Ajax wird dann immer das nachgeladen, was benötigt wird.

                Mir geht es um die vielen Ressourcen, die ich für diese Variante anlegen müsste.

                mfg

                --
                Die neuen 4 Jahreszeiten: Frühling, ARSCHLOCH, Herbst und Winter!
                1. Hallo Malcolm,

                  na ja, jetzt kommen wir zur Frage: Performance oder leichte Wartbarkeit?

                  Alles in einer Datei, die jedes mal komplett ausgeliefert wird, belastet das Dateisystem des Servers und das Netzwerk.

                  Alles in einer Datei, die jedes mal komplett geladen und dann per Serverscript "zerpflückt" wird, belastet Dateisystem und CPU des Servers, schont aber das Netzwerk. Hier könnte durch geschicktes Caching oder den Einsatz einer Datenbank einiges optimiert werden.

                  Alles auf einzelne Dateien verteilt schont Server und Netz, nicht aber die Nerven des Webadmins. In diesem Fall würde ich aber auf die Klassische Form zurückgreifen und sofort fertige Seiten ausliefern und das Nachgelade sein lassen.

                  Twitter scheint nach Bedarf nachzuladen, wenn man durch die Nachrichten scrollt; und Google Maps lädt ja auch die Kartenbilder erst, wenn sie "fast" sichtbar sind. Die kämen nie auf die Idee, die ganze Welt auf einmal auszuliefern.

                  Gruß, Jürgen

                  1. مرحبا

                    na ja, jetzt kommen wir zur Frage: Performance oder leichte Wartbarkeit?

                    Da war ich von Anfang an :)

                    Alles in einer Datei, die jedes mal komplett ausgeliefert wird, belastet das Dateisystem des Servers und das Netzwerk.

                    Eben. Wobei bei Statischen Ressourcen einem noch das Serverinterne Caching zugute kommt. Das funktioniert im Apache ja bestens.

                    Alles in einer Datei, die jedes mal komplett geladen und dann per Serverscript "zerpflückt" wird, belastet Dateisystem und CPU des Servers, schont aber das Netzwerk. Hier könnte durch geschicktes Caching oder den Einsatz einer Datenbank einiges optimiert werden.

                    Es kommt ja auch immer auf den Einsatzzweck an, was genau die Aufgabenstellung ist. Grundsätzlich stimme ich dir aber zu.

                    Alles auf einzelne Dateien verteilt schont Server und Netz, nicht aber die Nerven des Webadmins. In diesem Fall würde ich aber auf die Klassische Form zurückgreifen und sofort fertige Seiten ausliefern und das Nachgelade sein lassen.

                    Der Trend geht ja hin zu mehr Dynamik. Alles muss "Voodoo" sein, wie von Hexenhand, ohne echte Seitenwechsel. Ich finde es gut, ich steh auf Magie :)

                    mfg

                    --
                    Die neuen 4 Jahreszeiten: Frühling, ARSCHLOCH, Herbst und Winter!
                    1. Hallo Malcolm,

                      unser Serveradmin hat mir vor längerer Zeit mal folgende Abschätzung für die Serverlast gegeben:

                      Einfaches HTML:  1
                      SSI           :  2
                      PHP           : 10

                      Daher bin ich kein Freund vom "hemmungslosen" PHP-Einsatz. Ich bin der Meinung, dass statische Seiten auch als solche ausgeliefert werden sollten. Das CMS meines Arbeitgebers erzeugt erst mal nur statische Seiten. Wer will oder benötigt, wie ich bei einer Anmeldeseite, kann natürlich PHP o.Ä. einsetzen.

                      Mein Arbeitgeber musste übrigens vor einiger Zeit seinen Webserver aus performancegründen auf eine Serverfarm aufrüsten. Webspace plus Serverleistung ist alles andere als billig.

                      Ich habe in einem anderen Forum auch von einem Anbieter gelesen, dessen Projekt vom Provider wegen CPU-Zeit-Überschreitung gesperrt wurde.

                      Gruß, Jürgen

                      1. مرحبا

                        unser Serveradmin hat mir vor längerer Zeit mal folgende Abschätzung für die Serverlast gegeben:
                        Einfaches HTML:  1
                        SSI           :  2
                        PHP           : 10

                        Ich wusste nicht, dass PHP derart ins Gewicht fällt. Ich hätte im Gegensatz zu HTML hier eher eine 4 oder 5 erwartet, keine 10.
                        Danke für den Hinweis.

                        Daher bin ich kein Freund vom "hemmungslosen" PHP-Einsatz. Ich bin der Meinung, dass statische Seiten auch als solche ausgeliefert werden sollten.

                        Grundsätzlich stimme ich dir zu. Ich nutze PHP auch nur, wenn ich zur Ausgabe des Inhaltes irgendeine Logik brauche (bspw. Platzhalter ersetzen o. ä.).

                        Ich habe in einem anderen Forum auch von einem Anbieter gelesen, dessen Projekt vom Provider wegen CPU-Zeit-Überschreitung gesperrt wurde.

                        Von solchen Geschichten habe ich auch schon gehört. Da bin ich zum Glück noch weit von entfernt.

                        mfg

                        --
                        Die neuen 4 Jahreszeiten: Frühling, ARSCHLOCH, Herbst und Winter!