Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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 :rolleyes:

Geschrieben
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 :rolleyes:

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...

Geschrieben

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

Geschrieben

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:

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...