2-frozen Geschrieben 11. Dezember 2002 Geschrieben 11. Dezember 2002 Hi Zusammen... habe eine etwas größere DB-Abfrage (mySQL). Dauert eine Zeit vom Linkklick, bis er die Ausgabe auswirft. Wie setze ich eine "Bitte Warten" seite dazwischen? Ähnlich bei der Suche von diesem Forum .. da steht ja auch, dass die Suche in Arbeit ist. Irgendwie peil ichs gerade nicht Zitieren
beetFreeQ Geschrieben 12. Dezember 2002 Geschrieben 12. Dezember 2002 Originally posted by 2-frozen Hi Zusammen... habe eine etwas größere DB-Abfrage (mySQL). Dauert eine Zeit vom Linkklick, bis er die Ausgabe auswirft. Wie setze ich eine "Bitte Warten" seite dazwischen? Ähnlich bei der Suche von diesem Forum .. da steht ja auch, dass die Suche in Arbeit ist. Irgendwie peil ichs gerade nicht Schätze mal, daß die DB-Abfrage auf der Bitte-Warten-Seite ausgeführt wird und dann einfach zur Ergebnisseite weitergeleitet wird... Weiß jetzt aber nicht, wie dann auch die Ergebnisse mitgegeben werden könnten... - gute Frage eigentlich. Kann mir aber vorstellen, daß es für die Suchergebnisse eine eigene Tabelle gibt, die dann auf der Ergebnisseite nochmal ausgelesen wird... Oder weiß es jemand genauer? Könnte mir auch gut vorstellen, daß PHP Möglichkeiten bereitstellt, die dem Browser im selben Script vorgaukeln, eine neue Seite zu laden... - also den geladenen Seiteninhalt leeren und dann die Ergebnisse stattdessen anzeigen - aber ich hab auf die Schnelle nix im Manual gefunden... Zitieren
Jaraz Geschrieben 12. Dezember 2002 Geschrieben 12. Dezember 2002 Hi, wenn du schnell bist, kannst du dir mal den Code der Zwischenseite anschauen. Die Zwischenseite wird einfach jede Sekunde geladen, bis das Ergebnis da ist. Auf dem Server wird wahrscheinlich eine temporäre Tabelle mit der Suchabfrage erzeugt. Wenn die erstellt ist, wird das Ergebniss angezeigt. Es gibt auch noch die Server push Technik die aber nicht von allen Browsern unterstützt wird. Suche bei google mal nach "server push header" Eine 3.te Möglichkeit wäre, die Daten in einem versteckten Frame zu laden, und dann im Anzeige Frame den Inhalt auszutauschen, sobald die Daten übermittelt wurden. Geht dann aber nur mit Javascript. Gruß Jaraz Zitieren
Chris0 Geschrieben 13. Dezember 2002 Geschrieben 13. Dezember 2002 Mhh so hatte ich das schonmal gelöst... + Besucher macht Anforderung +Ich gebe eine Seite aus mit "Bitte Warten und einer refresh von 5Sec" und starte die Abfrage auf der DB. +Browser des Besuchers macht erneut die Anforderung (nach 5 Sec), ich gebe ihm das Ergebnis der Abfrage aus oder nochmal "Bitte Warten Seite". Damit ich weis welche Abfrage ich für welchen Besucher gestartet habe, gebe ich jeder Abfrage eine ID. Die Ergebnise werden mit id Tempurär gespeichert. Die Refresh-Seiten mit "Bitte warten", haben ebenfalls diese ID. Mit einem Select count(*) where id=<id> prüfe ich dann ob schon etwas da ist (Schnellste resultabfrage). Wenn etwas da ist, gebe ich die Ergebnisseite aus und lösche den Tempurären kram. Wenn Refresh im Browser nicht funzt, kann man ja noch einen Link Ausgeben. Naja wahrscheinlich kann man das auch anders lösen, aber dieses Buffern ist zumindest Browserunabhängig. 2 Lösung: Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.