4D v16.3

Halbdynamische Seiten

Home

 
4D v16.3
Halbdynamische Seiten

Halbdynamische Seiten  


 

 

Der Web Server von 4D ermöglicht die Verwendung halbdynamischer Seiten

Diese Seiten sind HTML 'templates' mit 4D HTML Tags, z.B. ein Mix aus statischem HTML Code und 4D Referenzen, die über Transformation Tags wie 4DHTML, 4DIF oder 4DINCLUDE hinzugefügt werden. Diese Tags werden in Form von (<!--#Tag Contents-->) in den HTML Quellcode eingefügt.

Hinweis: Unter bestimmten Bedingungen wird für 4DHTML, 4DTEXT und 4DEVAL Tags eine alternative Syntax mit $-Zeichen verwendet, um sie XML-kompatibel zu machen. Weitere Informationen dazu finden Sie im Abschnitt Alternative Syntax für 4DTEXT, 4DHTML, 4DEVAL.

Beim Senden über den HTTP Server werden diese Seiten analysiert und die darin enthaltenen Tags ausgeführt und mit den Ergebnisdaten ersetzt. Folglich sind die empfangenen Seiten eine Kombination aus statischen Elementen und Werten aus 4D.

Sie können per Programmierung Standardwerte für HTML Objekte festlegen. Sie setzen dazu <!--#4DTEXT VarName--> in das Feld Wert des HTML Objekts ein. VarName ist der Name der 4D Prozessvariablen, die im aktuellen Web Prozess definiert wurde. Der Name wird zwischen die Standardmarkierung für HTML Kommentare gesetzt <!--#...-->.

Hinweis: Einige HTML Editoren akzeptieren <!--#4DTEXT VarName--> nicht im Feld Wert von HTML Objekten. In diesem Fall müssen Sie den Ausdruck in HTML Code schreiben. Mit der Syntax <!--#4DTEXT VarName--> können Sie 4D Daten in der HTML Seite an beliebiger Stelle einsetzen. Schreiben Sie zum Beispiel <P>Welcome to <!--#4DTEXT vtSiteName-->!</P>, wird der Wert der 4D Variablen vtSiteName in die HTML Seite eingefügt.

Hier ein Beispiel:

  // Der folgende Teil des 4D Code weist "4D4D" der Prozessvariable vs4D zu
 vs4D:="4D4D"
  // Dann sendet er die HTML Seite "AnyPage.HTM"
 SEND HTML FILE("AnyPage.HTM")

Der Quellcode der HTML Seite AnyPage.HTM lautet:

<html>
<head>
    <title>AnyPage</title>
<script language="JavaScript"><!--
function Is4DWebServer(){
return (document.frm.vs4D.value=="4D4D")
}
function HandleButton(){
    if(Is4DWebServer()){
        alert("Sie sind mit 4D Web Server verbunden!")
    } else {
        alert("Sie sind NICHT mit 4D Web Server verbunden!")
}
//-->
</head>

<body>
<form action="/4DACTION/WWW_STD_FORM_POST" method="post" name="frm">
<p><input type="hidden" name="vs4D" value="<!--#4DTEXT vs4D-->"</p>
<p><a href="JavaScript:HandleButton()"><img src="AnyGIF.GIF" border=0 align=bottom></a></p>
<p><input type="submit" name="bOK" value="OK"></p>
</form>
</body>
</html>

Über das Tag <!--#4DTEXT --> lassen sich 4D Ausdrücke (Felder, Array Elemente, etc.) in die gesendeten Seiten einfügen. Es funktioniert genauso wie mit Variablen. Über 4DHTML Tags können Sie HTML Code in 4D Variablen einfügen. Über andere Tags wie 4DIF lässt sich der ausgeführte Code steuern. Ausführliche Informationen dazu finden Sie im Abschnitt 4D HTML Tags.

Der Inhalt von durch 4D gesendeten halbdynamischen Seiten wird analysiert, wenn die Befehle WEB SEND FILE (.htm, .html, .shtm, .shtml), WEB SEND BLOB (text/html vom Typ BLOB) oder WEB SEND TEXT bzw. gesendete Seiten über URL aufgerufen werden. Im letzten Fall werden zwecks Optimierung Seiten mit den Endungen .htm und .html NICHT analysiert. Um hier das Analysieren der HTML Seiten zu erzwingen, müssen Sie die Endung .shtm oder shtml anfügen, z.B. http://www.server.com/dir/page.shtm. Ein Beispiel dazu finden Sie in der Beschreibung zum Befehl WEB GET STATISTICS.

Über den Befehl PROCESS 4D TAGS können Sie das Analysieren auch außerhalb des Web Kontexts durchführen.

Der Parser arbeitet intern mit UTF-16 Strings, die zu analysierenden Daten könnten aber auch anders codiert sein. Bei Tags mit Text (z.B. 4DHTML) konvertiert 4D die Daten bei Bedarf, abhängig von Ursprung und verfügbarer Information (Charset). Nachfolgend die Fälle, in denen 4D die Tags in den HTML Seiten analysiert mit allen ausgeführten Konvertierungen:

AktionAnalyse des Inhalts der gesendeten SeitenBerücksichtigung der Syntax mit $ (*)Verwendeter Zeichensatz
Über URLs aufgerufene SeitenX, außer Seiten mit der Endung .htm” oder .htmlX, außer Seiten mit der Endung .htm” oder .htmlVerwendung von Charset, übergeben als Parameter des "Content-Type" Header der Seite. Gibt es keinen, wird nach einem Tag META-HTTP EQUIV mit einem Charset gesucht. Andernfalls wird der standardmäßige Zeichensatz für den HTTP Server verwendet.
Aufruf des Befehls WEB SEND FILEX-Verwendung von Charset, übergeben als Parameter des "Content-Type" Header der Seite. Gibt es keinen, wird nach einem Tag META-HTTP EQUIV mit einem Charset gesucht. Andernfalls wird der standardmäßige Zeichensatz für den HTTP Server verwendet.
Aufruf des Befehls WEB SEND TEXTX-Keine Konvertierung erforderlich
Aufruf des Befehls WEB SEND BLOB X, wenn BLOB vom Typ "text/html" ist- Verwendung von Charset, gesetzt als Parameter des "Content-Type" Header der Antwort. Andernfalls wird der standardmäßig für den HTTP Server gesetzte Zeichensatz verwendet.
Einfügen über <!--4DINCLUDE-->XXVerwendung von Charset, übergeben als Parameter des "Content-Type" Header der Seite. Gibt es keinen, wird nach einem Tag META-HTTP EQUIV mit einem Charset gesucht. Andernfalls wird der standardmäßige Zeichensatz für den HTTP Server verwendet.
Aufruf des Befehls PROCESS 4D TAGSXXText Daten: keine Konvertierung. BLOB Daten: Automatische Konvertierung vom Zeichensatz Mac-Roman zur Wahrung der Kompatibilität

(*) Die alternative Syntax mit $-Symbol ist für die Tags $DHTML, 4DTEXT und 4DEVAL verfügbar (siehe )

4D unterstützt JavaScript Quellcode, sowie JavaScript.js Dateien, die in HTML Dokumente eingebunden sind (z.B. <SCRIPT SRC="...").

Mit dem Befehl WEB SEND FILE oder WEB SEND BLOB senden Sie eine Seite, die Sie im HTML Quelleditor vorbereitet haben oder per 4D Programmierung erstellt und als Dokument auf der Festplatte gesichert haben. In beiden Fällen können Sie die Seite komplett steuern. Sie können im HEAD Bereich des Dokuments Skripte von JavaScript sowie Skripte mit dem FORM Marker verwenden. Im vorigen Beispiel bezieht sich das Skript auf das Formular "frm", da Sie das Formular benennen konnten. Sie können die Übertragung des Formulars in die Ebene FORM Marker auch auslösen, akzeptieren oder verweigern.

Hinweis: 4D unterstützt die Übertragung von Java Applets.



Siehe auch 

4D Transformation Tags

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: Web Server

 
GESCHICHTE 

 
ARTIKELVERWENDUNG

4D Programmiersprache ( 4D v16)
4D Programmiersprache ( 4D v16.1)
4D Programmiersprache ( 4D v16.2)
4D Programmiersprache ( 4D v16.3)