AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Benötige Hilfe bei TPageProducer
Thema durchsuchen
Ansicht
Themen-Optionen

Benötige Hilfe bei TPageProducer

Ein Thema von axellang · begonnen am 3. Sep 2014 · letzter Beitrag vom 4. Sep 2014
Antwort Antwort
axellang

Registriert seit: 3. Mai 2003
Ort: München
138 Beiträge
 
Delphi XE2 Enterprise
 
#1

AW: Benötige Hilfe bei TPageProducer

  Alt 3. Sep 2014, 17:37
@Jumpy

Ja verstehe,

es geht nicht um das DatenModul sondern um den doppelten Aufruf.
Das DatenModul kann er zig mal erstellen, das macht nichts. Das Problem besteht darin,
das der PP alle Tags doppelt durchläuft.

Wenn der PP auf den ersten Tag trifft, ruft er eine Methode im DatenModul auf und füllt mit den erhaltenen Daten
den Tag, z.B. TAG1. das geht ja in Ordnung. Das macht der auch mit dem zweiten Tag TAG2 und das ist auch
im Sinn des Erfinders. So nun hat er alle Tags im HTML-Template durchlaufen und jedem Tag seinen Wert
zugewiesen. Ob der das in einer Schleife macht oder wie auch immer, das ist nebensächlich.

Von mir aus kann er nochmals das Dokument parsen, ob ein Tag vergessen wurde, auch Ok, aber der PageProducer
ruft jeden Tag nochmals auf und verpasst ihm den Wert erneut egal ob schon geschehen oder nicht.

So als mache er erst mal einen Probelauf um dann im zweiten Anlauf die Werte nochmals einzutragen.

Leider finde ich nirgends eine gute Doku darüber.

Deshalb meine Frage:

Mache ich selbst was falsch?
Falls ja, wie benutzt man die Komponente richtig.
Oder, oder....

Danke, Alexander
Alexander Lang
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.740 Beiträge
 
Delphi 6 Enterprise
 
#2

AW: Benötige Hilfe bei TPageProducer

  Alt 4. Sep 2014, 08:09
Er durchläuft den Content meines Wissens nur 1x und durchsucht den auf Tags und zwar immer wenn du auf den Content zugreifst, sprich irgendwas:=pp.Content.
Ich muss aber gestehen, dass ich das nicht als ISAPI-Extension nutze sondern immer eigene CGI.exe erzeuge. Dabei arbeite ich dann mit WebActions, auf die die Requests "verteilt" werden. Jeder WebAction ist dann i.d.R. ein PageProducer zugeordnet der den Content liefert. Diese DefaultHandlerAction nutze ich dabei nicht, daher weiß ich nicht woran es bei dir liegen könnte.
Ralph

Geändert von Jumpy ( 4. Sep 2014 um 08:14 Uhr)
  Mit Zitat antworten Zitat
axellang

Registriert seit: 3. Mai 2003
Ort: München
138 Beiträge
 
Delphi XE2 Enterprise
 
#3

AW: Benötige Hilfe bei TPageProducer

  Alt 4. Sep 2014, 16:01
Für die Nachwelt...

Die Web.HTTPApp.TWebModule besitzen die Eigenschaft Web.HTTPApp.TCustomWebDispatcher.Actions _
die wiederum die Eigenschaft
Web.HTTPApp.TWebActionItem.Producer und Web.HTTPApp.TWebActionItem.ProducerContent .
Weist man dann einem der zwei im Objektinspektor den TPageProducer zu und ruft die
Web.HTTPApp.TCustomWebDispatcher.Actions wie hier unten auf:
Delphi-Quellcode:
procedure TWebModuleMain.WebModuleMainDefaultHandlerAction(Sender: TObject;
  Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
begin
  PP.HTMLFile := Request.TranslateURI('/templates/template1.html');
  Response.Content := PP.Content;
end;
kommt es zu dem von mir geschilderten Verhalten. Das oben gezeigte funktioniert nur richtig, also ohne doppelten Aufruf,
wenn im "Producer" und "ProducerContet" der Action nichts zugewiesen wurde! Falls doch, muss der Handler der Action wie folgt
aussehen:
Delphi-Quellcode:
procedure TWebModuleMain.WebModuleMainDefaultHandlerAction(Sender: TObject;
  Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
begin
  Response.SendResponse;
end;
Vergessen darf man dann nicht, falls Templates dynamisch geladen werden sollen, die Templates z.B. im
Web.HTTPApp.TWebModule.BeforeDispatch zu laden PP.HTMLFile := 'C:\Template.html'; .
Die "BeforeDispatch" Ereignisbehandlungsroutine führt eine Vorverarbeitung durch bevor es zu der/den Action/s geht.
Mehr siehe Hilfe unter:
Zitat:
ms-help://embarcadero.rs_xe2/rad/Web_Broker_verwenden_-_Index.html

Alexander

PS: So ein Sche** ich fass es nicht
Alexander Lang
  Mit Zitat antworten Zitat
Antwort Antwort


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 13:29 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz