4D v16.3セミダイナミックページ |
||||||||||||||||||||||||||||||
|
4D v16.3
セミダイナミックページ
セミダイナミックページ
4D Webサーバーでは、セミダイナミックページを使用することができます。 これらのページは4D HTMLタグを含んだHTML"テンプレート"であり、つまりスタティックなHTMLコードと、4DHTML、4DIF、または 4DINCLUDEなどの変換タグによって追加された4D参照を合わせたものです。これらのタグはHTML型のコメント(<!--#Tag Contents-->)としてHTMLソースコードに挿入されます。 注: 4DHTML、4DTEXT、4DEVALタグに関しては、これらをXMLに準拠させるため、特定の場合において$-ベースの代替シンタックスが使用されます。詳細な情報については、4DTEXT、4DHTML、4DEVALにおける代替シンタックスの章を参照して下さい。 これらのページがHTTPサーバーによって送信されると、そのページは解析され、中のタグは実行されてその結果のデータで置き換えられます。その結果、ブラウザで受信したページは、スタティックな要素と4Dからひっぱってきた値を合わせたものとなるのです。 HTMLオブジェクトのvalue フィールドに<!--#4DTEXT VarName--> を含めることによって、プログラミングによってHTMLオブジェクトにデフォルト値を与えることができます。このときVarName iがカレントWebプロセスで定義された4Dプロセス変数名となります。この名前は標準のHTML記法でコメントとして使用する<!--#...--> で囲います。 注: HTMLエディタによっては <!--#4DTEXT VarName--> をHTMLオブジェクトの value フィールドに許可しないかもしれません。この場合、HTMLコードに直接入力する必要があります。 <!--#4DTEXT --> タグを使用すればページに4D式 (フィールドや配列要素) を挿入することもできます。 このタイプのデータに対するこのタグの動作は、変数のそれと同じです。詳細はST FREEZE EXPRESSIONSを参照してください。 実際、シンタックス <!--#4DTEXT VarName--> は、HTMLページのどこにでも、4Dデータを挿入することを可能にします。例えば以下のように記述すると: <P>Welcome to <!--#4DTEXT vtSiteName-->!</P> 4D変数vtSiteName の値がHTMLページに挿入されます。 例題: // 以下の4Dコードはプロセス変数vs4Dに"4D4D"を割り当てます。 AnyPage.HTMのソースは以下のようなものです: <html> <head> <title>AnyPage</title> <script language="JavaScript"><!-- function Is4DWebServer(){ return (document.frm.vs4D.value=="4D4D") } function HandleButton(){ if(Is4DWebServer()){ alert("You are connected to 4D Web Server!") } else { alert("You are NOT connected to 4D Web Server!") } //--></script> </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> <!--#4DTEXT --> タグは送信したページに4D式(フィールド、配列要素、等)を挿入することもできます。このタグでのこのデータ型のオペレーションは、変数のオペレーションと同じです。また、4DHTML タグによって、HTMLコードを4D変数へと挿入することも可能です。4DIF などの他のタグは、実行されたコードの操作を可能にします。使用可能な全てのタグの詳細は、4D HTMLタグの章の中にあります。 4Dが送信するセミダイナミックページの内容解析は、WEB SEND FILE (.htm, .html, .shtm, .shtml) または WEB SEND BLOB (text/html タイプのBLOB) コマンドが呼び出された時、またはWEB SEND TEXTコマンドが呼び出されたとき、さらにはURLを使用してページが呼び出されたときに発生します。 しかし最後のケースでは、 最適化の目的で、“.htm” と “.html” 拡張子を持つページは解析されません。この場合ページの解析を強制的に行うには、拡張子を “.shtm” または “.shtml” (例えば http://www.server.com/dir/page.shtm) にします。 内部的に、パーサーはUTF-16で動作します。しかし、解析するデータは異なるコード体系かもしれません。タグ(例えば4DHTML)を含むテキストであるときや、文字セットが明示的に指定されているようなときには、4Dは必要に応じてデータを変換します。
(*) 4DHTML、4DTEXT、4DEVALタグにおいては代替の$-ベースシンタックスが利用可能です(の章を参照して下さい)。 4DはJavaScriptソースコードとJavaScript .js ファイル (例 <SCRIPT SRC="...")とをHTMLドキュメントに埋め込むことをサポートしています。 WEB SEND FILE や WEB SEND BLOBを使用すると、HTMLソースエディタで編集したHTMLソー スや4Dからディスクに保存したHTMLを送信します。両方のケースで、ページをフルコントロールできます。ドキュメントのHEAD部に JavaScriptスクリプトを挿入したり、FORMマークアップでスクリプトを使用したりできます。先の例題で、フォームに名前を付け、スクリプトか らそのフォームを参照しました。またフォームのマークアップレベルでサブミットを受け入れたり拒否したりできます。 注: 4DはJava applets transportをサポートしています。
参照
|
プロパティ
プロダクト: 4D
履歴
ARTICLE USAGE
ランゲージリファレンス ( 4D v16) |
||||||||||||||||||||||||||||