![]() |
CSS mit Webbroker
Hi zusammen
Zur Zeit arbeite ich mich in die Webbroker-Technologie ein. Dabei ist es ja möglich, einer TPageProducer-Komponente entweder einen TString in HTMLDoc oder ein File in HTMLFile zu übergeben. Nun muss ich ja ausser den HTML-Anweisungen auch CSS-Formatierungen und - wie mir gerade einfällt - allenfalls auch Javascript übergeben. Solches sollte, denke ich, als File nicht möglich sein; ich nehme an, dass das Property HTMLFile auch eine HTML-Datei erwartet und also weder eine *.css- noch eine *.js-Datei akzeptieren würde. Aktuell habe ich CSS-Anweisungen per Stringeditor in HTMLDoc eingelesen. Das gefällt mir aber deswegen nicht, weil allfällige Änderungen ein Neukompilieren erfordern. Wie gesagt, bin ich daran, mich einzuarbeiten. Das heisst, ich gehe zurzeit den Weg über vorliegende Dateien (im Falle von HTMLFile), in der Endgültigen Version sollen diese Inhalte aber per Stream aus einer DB kommen. Irgendwie denk ich, stehe ich mit wohl mehr als beiden Beinen auf dem Schlauch. Um mal die Help zu zitieren: Zitat:
Gruss Delbor |
AW: CSS mit Webbroker
Dieser ominöse
![]() ![]() Dieses Event wird aufgerufen, wenn beim Parsen einer dieser transparenten Html-Tags gefunden wird. Im Event bekommst du den Tag-Namen und die Parameter geliefert und kannst dafür einen passenden Inhalt ausliefern.
Code:
<b>Firstname:</b> <#Firstname>
Delphi-Quellcode:
if TagName = 'Firstname' then
ReplaceText := 'Walter';
Code:
Die *.css und *.js speicherst und lieferst du aus wie *.png oder *.jpg, denn die hast du auch nicht im Programm gespeichert ;)
<b>Firstname:</b> Walter
|
AW: CSS mit Webbroker
Hi Sir Rufo
Danke für deine schnelle Antwort! [QUOTE=Sir Rufo;1255414]Dieser ominöse ![]() ![]() Danke, das hab ich soweit begriffen:
Delphi-Quellcode:
procedure TWebModule1.PageproducerImageHTMLTag(Sender: TObject; Tag: TTag;
const TagString: string; TagParams: TStrings; var ReplaceText: string); begin if TagString = 'UserName' then ReplaceText := 'Herr Braun'; if Tagstring = 'Herkunft' then ReplaceText := Self.Request.UserAgent; end; procedure TWebModule1.WebModule1DefaultHandlerAction(Sender: TObject; Request: TWebRequest; Response: TWebResponse; var Handled: Boolean); begin Response.Content := '<html><heading/><body>Webserver-Anwendung</body></html>' + '<P>' + PageproducerImage.Content ; end; Zitat:
Das mit dem Neukompilieren stimmt nur dann, wenn zur Designzeit eine Zuweisung mit dem Stringlisteneditor erfolgt. Ich muss da nochmal über die Bücher, aber soweit ich das bis jetzt verstanden habe, akzeptiert 'src' nur gerade einen Dateipfad. Erstmal das, was zu ersetzen wäre - erstellt werden sollen diverse Seiten einer Fotogallerie:
Delphi-Quellcode:
Nach deiner Aussage bleibt mir also nichts anderes übrig, als die *.jpgs, *.css etc auf der Platte zu speichern (per Filestream aus der DB geholt) und obigen HTML-Code dynamisch (mit anderen Pfaden) zu ersetzen.
<div id="img1"> <img alt="DelborPunktCH" src="./Images/jpeg150/DSC_5751.jpg"/></div>
<div id="img2"> <img alt="DelborPunktCH" src="./Images/jpeg150/DSC_5752.jpg"/></div> <div id="img3"> <img alt="DelborPunktCH" src="./Images/jpeg150/DSC_5753.jpg"/></div> <div id="img4"> <img alt="DelborPunktCH" src="./Images/jpeg150/DSC_5754.jpg"/></div> <div id="img5"> <img alt="DelborPunktCH" src="./Images/jpeg150/DSC_5755.jpg"/></div> <div id="img6"> <img alt="DelborPunktCH" src="./Images/jpeg150/DSC_5756.jpg"/></div> <div id="img7"> <img alt="DelborPunktCH" src="./Images/jpeg150/DSC_5757.jpg"/></div> <div id="img8"> <img alt="DelborPunktCH" src="./Images/jpeg150/DSC_5758.jpg"/></div> <div id="img9"> <img alt="DelborPunktCH" src="./Images/jpeg150/DSC_5759.jpg"/></div> <div id="img10"> <img alt="DelborPunktCH" src="./Images/jpeg150/DSC_5760.jpg"/></div> <div id="img11"> <img alt="DelborPunktCH" src="./Images/jpeg150/DSC_5761.jpg"/></div> <div id="img12"> <img alt="DelborPunktCH" src="./Images/jpeg150/DSC_5762.jpg"/></div> Obiger Code ist übrigens überholt; er stammt aus meinen allerersten CSS-Versuche. Neu wirds wohl eine CSS-Klasse geben, die an die 'div's zugewiesen wird. |
AW: CSS mit Webbroker
Du bekommst für jede Datei eine Anforderung.
Die erste Anforderung ist eine *.html Datei. Dazu lädst du das passende Template, jagst es durch den PageProducernd lieferst das Resultat aus. Die nächsten Anforderungen sind dann *.css, *.js, *.jpg, ... Die Daten/Dateien werden als Stream übertragen, ob du also erst eine Datei erzeugst und diese dann als FileStream auslieferst, oder einen MemoryStream, who cares, dem Empfänger ist es wurscht, den bekommt einen Stream und fertig. siehe ![]() Natürlich kannst du die Templates fest einkompilieren, aber wenn du das nicht willst, dann eben nicht einkompilieren. |
AW: CSS mit Webbroker
Hi zusammen
@Sir Rufo: Etwas spät zwar, aber trotzdem Danke für deine Antwort! Ich hab mir seither noch etwas Theorie um die Ohren geschlagen und bin dabei auf einen Widerspruch gestossen:
![]() Nur "scheint", weil ich im Wesentlichen auch danach suche, wie unter Webbroker Sessions verwaltet werden. Irgendwie hab ich im Hinterkopf, ich hätt bei Embarcadero mal was von einer Sessionlist im Zusammenhang mit Webbroker gelesen, aber ich kann die Seite nicht mehr finden. Es gibt zwar ein Objekt TSession, aber das ist offensichtlich die gleichnamige BDE-Komponente... So ist denn meine Frage: wie verwaltet Webbroker Websessions? Gruss Delbor |
AW: CSS mit Webbroker
Hi Sir Rufo
Zitat:
![]() Bislang bin ich immer davon ausgegangen, dass eine Anforderung die komplette Webseite betrifft. Desshalb hab ich diesen Satz auch als nicht wirklich verstanden immmer wieder überlesen. Interpretiere ich den aber neu, so bedeutet das, dass ein Verweis in einer HTML-Seite (src=...) eine neue Anforderung des Clients (Browsers) auslöst. Ist diese Interpretation richtig? Ausserdem würde dies bedeuten, dass ich für jedes Bild (oder Audiodatei etc.) eine neue Anforderung losgeschickt wird. Und das erhöht den Traffic... Gruss Delbor |
AW: CSS mit Webbroker
:thumb: Ich hätte es nicht schöner ausdrücken können ;)
Und ist ja auch (irgendwie) logisch. Die erste Anfrage ist ja z.B. nach der "/index.html" und genau die (also der Inhalt - der nur aus text besteht) wird übertragen. Dort befindet sich die Beschreibung, wie die Seite anzuzeigen ist, teilweise durch Bilder, die als Link dort hinterlegt sind ... ja, und dann lädt der Browser die (wenn er die nicht schon im Cache hat). |
AW: CSS mit Webbroker
Hi Sir Rufo
Ich sage ja: wer (richtig) lesen kann, ist klar im Vorteil 8-) Zitat:
Gruss Delbor |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:50 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