[jQuery] Skript um Vorgeladenes Nachladen - Zwischenspeichern

  • Hi,
    ich suche ein Skript mit dem man ein Nachladen realisieren kann.
    Mit diesem Skript lässt sich das zwar relaisieren: http://www.finrik.at/content/jquery-dynamisches-nachladen
    Aber er lädt die externe Datei einfach später, dadurch kann man nur schwer auf alte Datenbankabfragen zugreifen. Gibt es eine Möglichkeit das nachzuladenen Element schon einmal vorzuladen und dann im Nachinhein zu laden?
    anders ausgedrückt:
    Eine Signatur enthält oft dynamische Bilder, in einer Datenbank wird dies für jeden Poster abgefragt. Das Skript soll im Prinzip den Inhalt (Code) ganz normal auslesen aber das Bild noch nicht anzeigen, sondern Nachladen.

    Vielen Dank :)

  • also du hast offensichtlich noch nicht die begrifflichkeit und vor- und nachladen verinnerlicht.

    entweder du lädst was vor oder du lädst was nach, etwas nachträglich vorladen geht nich

  • wie oben schon erwähnt brauche ich es zum nachladen der signatur, der Post selber soll schon vorher angezeigt werden. Um die Signatur später zu laden brauche ich mind. die ID, nur leider kann ich die nicht übergeben an die zu ladende Datei. Entweder kann ich es mit dem Skript (s.o.) gar nicht lösen oder man kann keine dynamischen Inhalte nachladen..

  • Zitat


    nur leider kann ich die nicht übergeben an die zu ladende Datei.


    Wer sagt das ??? Um was nachzuladen muss ein neuer Request her, du kannst nicht eine Datenankabfrage ausführen und die ergebnisse auf 2 mal laden. Übergib einfach die id an ein JavaScript und leg dir aufm server ne datei wie z.B. ajax_signatur.php an, die die signaturen ausgibt.

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.

    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  • Dein Vorhaben bringt dir in der Perfomance sowie so nichts,.... Wieviele Seiten ist den deine Signaturen groß? Das wird doch eh nur Text sein, mit bischen Bildern

  • es geht, dass es sich dabei meistens um Signaturen mit Erspielten Punkten/Ergebnissen/.. von Starcraft 2 handelt und die Bilder (das Spielerprofil) von einer anderen Seite kommt, die öfters dazu neigt, längere Ladezeiten zu haben..

  • Hm naja und wo ist da nun dein Problem, lade einfach eine spezielle Datei nach in der die Infos stehen, was hast du den bereits?

  • ich habe die normale index.php, an der Stelle wo die Signatur erstellert werden würde, steht jetzt die ID, die an die signatur.php weitergegeben werden muss, was ich nicht weiß, wie mach das macht. eigentlich scheiterts nur an der Variablenübergabe..

  • PHP
    $posttest=mysql_fetch_un_bla();
    echo $posttext['post'];
    echo "<div id='".$posttext['id']."'><script>$('#".$posttext['id']."').get('signatur.php?frompost=".$posttext['id']."');</script></div>";


    War das so schwer?

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.

    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  • Wenn ich Tobses vorschlag richtig verstanden habe, soll ich einfach die ID mittels der URL übergeben. Das Problem dabei ist, dass ich lediglich signatur.php lade, irgendwelche Zusätze:


    Da dies generell einmal definiert ist, lässt es sich - mit meinen Kenntnissen - nicht in Tobses Vorschlag modifizieren..

  • synaptic: Sorry, hast recht.
    @TS:
    Schon fast, du musst eben per JS oder jQuery eine Referenz auf das HTML-Element bekommen, indem die Signatur dann stehen soll. Wenn du die hast, kannst du dort hinein dann mit $.ajax / $().load(url); die signatur reinladen. In meinem Beispiel übergebe ich eine ID (in diesem fall die des posts) sowohl an das HTML-Attribut id eines Div-Elements sowie an JS.

    P.S.: Du könntest auch Per JS durch alle divs (per document.getElementsByTagName();) gehen und alle, deren id (z.B. postXY) entspricht den entsprechenden inhalt verpassen. Kannst du denn den PHP-Code verändern oder nur ein JS einbinden?

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.

    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  • naja nehmen wir mal das Beispiel auf meinem letzten Post, test.php kann ich beliebig ändern, aber halt nicht dynamisch. Man muss es als eigene Datei verstehen, die nichts von der index-datei weiß.
    die Frage ist, wann lädt der Browser $.ajax{}
    Die Deklaration steht bei mir momentan im Header.
    also meine Idee die mir gerade durch den Kopf geht:

    Nun weiß ich nicht, ob das überhaupt so klappt, 1. auf Gund der Syntax und 2. auf Grund des Ladens, die IP wird ja erst im Laufe des Seitenaufrufes definiert.

    2 Mal editiert, zuletzt von supersass1 (12. Oktober 2010 um 10:21)

  • Ne, das dürfte nicht klappen. Gibts da kein template auf dem Server indem du das html-gerüst eines Postings ändern kannst? Anders wird schwer. Kannst du uns den Quellcode geben?

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.

    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  • doch klar, ich kann das ändern..
    Die Signatur wird über das posts-Template aufgerufen, dazu gibt es eine posts.html und die zugehörige posts.php. Ich hatte nun vor, die posts.html so zu verändern, dass anstelle der Signatur halt der ajax-loader (irgendein Bild halt) und dann nach einigen Sekunden die Signatur geladen wird. Dazu kann man dann in der posts.html die ID speichern, da gibt es sogar eine fertige Funktion für.
    Es hakt wirklich nur an der Übergabe dieser ID an die (neue, von mir erstellte) signatur.php.
    Es würde einfacher gehen, wenn man nur die Funktion des signatur-aufrufes nachladen könnte, dann bräuchte man keine signatur.php und umgeht das Übergabe-Problem.

    Kurz gesagt (als pseudocode):

    Code
    <script>
    // speichert den inhalt/code und lädt ihn später
    </scirpt>
    
    
    // posts.html
    {posttitle}
    {postbeitrag}
    funktion.zum.nachladen({signatur})

    Neue Idee:
    Ist es vielleicht möglich, statt der php variable einen javascript variable zu nehmen und diese als Platzhalter nutzen und später mittels php festlegen? Die Frage ist halt, wann die Funktion .ajax {} geladen wird.
    Dieses Tutorial bezieht sich doch genau auf mein Problem: http://www.blogwave.de/ajax-bzw-jquer…isch-laden.html

    2 Mal editiert, zuletzt von supersass1 (14. Oktober 2010 um 10:30)