AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi WebSite von Server zum Client "pushen" (CGI Script)

WebSite von Server zum Client "pushen" (CGI Script)

Ein Thema von tini · begonnen am 11. Sep 2003 · letzter Beitrag vom 18. Sep 2003
Antwort Antwort
Seite 2 von 2     12
tini

Registriert seit: 13. Aug 2003
16 Beiträge
 
#11

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

  Alt 12. Sep 2003, 09:42
Also auf die Lösung mit den Layern bin ich auch schon gestoßen.
Ist nur die Frage, wie ich das mit der html seite mache (ausleitende tags...</body></html> etc.).

Bevor die Seite abgeschlossen wird, müsste ich ja dann erstmal die Abfrage starten, und danach dann das Ergebnis und abschließende Tags der html seite zum client senden!
Ist das funtkionsfähig?

mfg tini
  Mit Zitat antworten Zitat
Benutzerbild von Wormid
Wormid

Registriert seit: 26. Aug 2003
Ort: Steinfurt
292 Beiträge
 
Delphi XE2 Professional
 
#12

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

  Alt 12. Sep 2003, 10:02
Die abschliessenden Tags dürfen natürlich noch nicht übertragen werden.

Es müsste in etwa so aussehen:

Code:
<html>
<head>
  ...
</head>

<body>
...
<span id="processing">Bin am Verarbeiten am tun dranne... ;-)</span>
An dieser Stelle muss das Script den Ausgabebuffer an den Client senden und dann die zeitintensive Aktion starten. Sobald die durch ist, müsste es mit der Ausgabe so ungefähr weitergehen...

Code:
<script>processing.style.display = "none"</script>
...
Lorem ipsum... etc...
</body>
</html>
Debuggers don't remove Bugs, they only show them in Slow-Motion.
  Mit Zitat antworten Zitat
Benutzerbild von FriFra
FriFra

Registriert seit: 19. Apr 2003
1.291 Beiträge
 
Delphi 2005 Professional
 
#13

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

  Alt 12. Sep 2003, 10:50
Solange aber keine ausleitenden Tags vorhanden sind kann man sich aber nicht darauf verlassen, dass die Seite überhaupt schon angezeigt wird!
Warum machst du nicht einfach eine Zwischenseite:

Ausgangsseite
|
Zwischenseite (Bitte warten) -> Request an DB-Funktion
|
Ergebnisseite


Jetzt könnte es passieren, dass die Seite von der DB-Applikation als "noch leere" Seite die bitte warten Seite wegbügelt, das kannst Du aber verhindern, indem Du die Seite erst anzeigst, wenn sie vollständig geladen ist.
das geht z.B. mit folgender Zeile im Head der Ergebnisseite:
Code:
<META HTTP-EQUIV="Page-Enter" CONTENT="revealTrans(Duration=0.6,Transition=12)">
P.S.: Push kannst Du Gott sei Dank vergessen, sonst könnte Dir z.B. jeder jede beliebige Datei ungefragt auf deinen Rechner senden
Elektronische Bauelemente funktionieren mit Rauch. Kommt der Rauch raus, geht das Bauteil nicht mehr.
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#14

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

  Alt 12. Sep 2003, 11:13
Wie wärs mit einem Meta-Refresh?
Du schreibst hin "Bitte Warten", und in den Meta-Tag fügst du einen Meta-Refresh ein, der sofort mit der zeitintensiven Aktion beginnt. Erst wenn sie fertig ist, wird die nächste Seite geladen. Dieses Verfahren wird z.B. von einigen Webmailclienten benutzt.

Edit: OK, ich sehe, das ist FriFras Vorschlag, aber ich hab noch dazu geschrieben, wie der HTML-Tag dazu heißt
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Benutzerbild von FriFra
FriFra

Registriert seit: 19. Apr 2003
1.291 Beiträge
 
Delphi 2005 Professional
 
#15

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

  Alt 12. Sep 2003, 11:15
@Chewie: Das ist ja mein Beispiel "auf Links gedreht" ...
Elektronische Bauelemente funktionieren mit Rauch. Kommt der Rauch raus, geht das Bauteil nicht mehr.
  Mit Zitat antworten Zitat
tini

Registriert seit: 13. Aug 2003
16 Beiträge
 
#16

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

  Alt 16. Sep 2003, 15:36
Hi!!!
Danke für Eure Hilfe!

Also das mit
<META HTTP-EQUIV="Page-Enter" CONTENT="revealTrans(Duration=0.6,Transition=12)"> habe ich probiert.
Aber es funktioniert nicht. Ich glaube es liegt daran, dass der Server die .exe erst komplett ausführt, und danach die Verbindung zum Client wieder aufbaut und das Ergebnis bzw. die Ergebnisseite übermittelt (es werden nämlich auch "Bitte warten..." Seite und "Ergebnisseite" erst nach der DB-Abfrage auf EINER Seite dem Client zugestellt, trotz jeweiliger ausleitender tags der einzelnene Seiten).

Nun fragt sich, wie man die Verbindung zum Client schon vorher wieder herstellen kann... (nur die IP Adresse wird da nicht langen...) und die "Bitte warten" Seite schon eher versendet(also vor db abfrage und bevor .exe Datei beendet.

mfg tini
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#17

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

  Alt 16. Sep 2003, 15:51
Nochmal, ich würde folgendermaßen vorgehen:

Situation: Der Client will was von dir (Webserver), was etwas länger dauern wird.

1. Du schickst ihm eine Seite, auf der "Bitte warten" (oder so was ähnliches) steht
2. Diese Seite enthält einen Meta-Refresh (mit Intervall 0 Sekunden), der das Script lädt, das die Aktion durchführen wird
3. Du sendest erst wieder Daten an den Client, wenn deine Berechnung ganz abgeschlossen ist
4. Der Client hat jetzt die Bitte-Warten-Seite auf dem Bildschirm, bis deine Berechnung fertig ist und er die neue Seite fertig laden kann.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
tini

Registriert seit: 13. Aug 2003
16 Beiträge
 
#18

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

  Alt 18. Sep 2003, 09:01
Hallo!

Merci an Euch!! Jetzt klappt's wunderbar!!!

mfg

tini
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:34 Uhr.
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