Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi WebSite von Server zum Client "pushen" (CGI Script) (https://www.delphipraxis.net/8762-website-von-server-zum-client-pushen-cgi-script.html)

tini 11. Sep 2003 14:56


WebSite von Server zum Client "pushen" (CGI Script
 
Hi @ all!

Ich hab ein Problem: Ich möchte gerne eine Seite zum Client senden obwohl kein Request erfolgt ist. D.h. der Client sendet schon ein Request zur Datenbankabfrage zum Server.
Diese dauert u.Umständen aber sehr lang, und in dieser Zeit soll zum Client ein Seite mit Sanduhr oder ähnlichem gesendet werden, bis DB Abfrage fertig ist.

Kennt sich da jemand aus?

thanx, tini :spin:

Christian Seehase 11. Sep 2003 15:23

Re: WebSite von Server zum Client "pushen" (CGI Sc
 
Moin tini,

ich hab' jetzt zwar schon länger kein CGI Programm mehr erstellt, aber wer hindert Dich daran, statt der Seite mit den angeforderten Daten erst einmal eine "Bitte warten" Seite abzuschicken, und später dann die mit den Daten.

Chewie 11. Sep 2003 16:13

Re: WebSite von Server zum Client "pushen" (CGI Sc
 
Zitat:

Zitat von tini
Ich hab ein Problem: Ich möchte gerne eine Seite zum Client senden obwohl kein Request erfolgt ist. D.h. der Client sendet schon ein Request zur Datenbankabfrage zum Server.


Das versteh ich nicht: Du willst einem HTTP-Clienten etwas schicken, obwohl der gar nichts von dir will? Das wird der Client nie verarbeiten, außerdem, woher weißt du dessen IP?
Ich glaub, ich versteh dein Problem nicht ganz :cry:

theomega 11. Sep 2003 16:15

Re: WebSite von Server zum Client "pushen" (CGI Sc
 
Das geht, ganz sicher, ich habe einen Chat, der macht genau das: der reloaded nicht immer so, wie es die normalen tun, sondern sendet erst an die User einen Befehl zum reloaden, wenn wirklich Daten da sind!

Christian Seehase 11. Sep 2003 16:16

Re: WebSite von Server zum Client "pushen" (CGI Sc
 
Moin Chewie,

Zitat:

Zitat von tini
D.h. der Client sendet schon ein Request zur Datenbankabfrage zum Server.


Chewie 11. Sep 2003 16:43

Re: WebSite von Server zum Client "pushen" (CGI Sc
 
Tut mir leid, jetzt versteh ich gar nix mehr.
Ein Webserver schickt soll einem Client eine Seite senden, obwohl der Client keine Anfrage geschickt hat. Nun wurde aber doch eine Anfrage geschickt :shock:

Na ja, solange du es verstehst, Chris, iss ja alles gut :nerd:

Christian Seehase 11. Sep 2003 17:04

Re: WebSite von Server zum Client "pushen" (CGI Sc
 
Moin Chewie,

ein Client ruft ein CGI Programm aufgerufen, dass Daten aus einer Datenbank abfragt, und diese dann, vermutlich aufbereitet, in Form einer HTML Datei an den Client zurückschickt.
Da diese Datenbankabfrage wohl etwas dauern kann möchte tini nun wissen, ob man zwischendurch auch eine andere HTML Datei zurückschicken kann.

Soweit das, was ich aus tinis Frage heraus verstanden habe.

Na ja, meine Antwort dazu steht ja schon da ;-)

tini 12. Sep 2003 08:07

Re: WebSite von Server zum Client "pushen" (CGI Sc
 
Hi!

Christian schreibt:

Zitat:

wer hindert Dich daran, statt der Seite mit den angeforderten Daten erst einmal eine "Bitte warten" Seite abzuschicken, und später dann die mit den Daten.
Genau das habe ich ja vor, bloß erfolgt nach der "bitte warten" seite kein weiters Request des Clients und nun weiß ich nicht, wie man die Seite dann trotzdem sendet. (via IP Adresse des Clients, Cookie, ...?).
oder über <head><meta http-equiv="expires"...> im html Teil?

@Chewie:

Die IP Adresse des Clients bekomm ich ohne weiteres durch das CGI Script.
Zb:
Delphi-Quellcode:
IP:= Request.RemoteAddr;
Und wie Christian schont schrieb, möchte ich, da die Datenbankanfrage länger dauert, eine "Bitte Warten" Seite "einschieben", bis das Ergebnis da ist-sonst denkt der User, das Programm hat sich aufgehängt oder so.

mfg
tini :spin:

Wormid 12. Sep 2003 09:17

Re: WebSite von Server zum Client "pushen" (CGI Sc
 
Soweit mir bekannt ist, gibt es keine möglichkeit, das übers "pushen" zu lösen...

Viele Seiten die scheinbar so was machen, realisieren das über einen Trick:
Es wird eine halbe Seite zum Client gestreamt, mit einem Layer (in dhtml) z.B. der Anzeigt "Bitte warten - Daten werden sortiert". Der Server (bzw. das CGI-Script darf dabei aber die Verbindung zum Client nicht beenden.
Wenn die langwierige Verarbeitung auf dem Server abgeschlossen ist, gibt das CGI-Script zunächst etwas JavaScript aus, das den "Bitte warten..."-Layer abschaltet und danach die restliche Seite ausgibt.

Im Moment habe ich dazu kein konkretes Beispiel an der Hand, aber mit ein bisschen gesuche... *g*


Gruß

Wormid

Wormid 12. Sep 2003 09:31

Re: WebSite von Server zum Client "pushen" (CGI Sc
 
Ein kleines Beispiel zu meinem Denkansatz aus einem Usercomment in der PHP-Dokumentation...

Schritt 1, vor der langwierigen Datenbankoperation:
Zitat:

the part that you want to show during the 'processing' has to be embedded in a SPAN tag like so:

echo "<span id=\"processing\">analysing data...</span>";
flush();
Schritt 2, nach der dicken Datenbankoperation...
Zitat:

then the long calculations will follow, after a few seconds you then simply send:

echo "<script>processing.style.display='none'</script>";

taadaa, and the part within the SPAN tags will disappear.
Ich denke, das sollte so auch ohne weiteres auf Delphi übertragbar sein.

Gruß

Wormid


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:48 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz