推奨:ASPチュートリアル:擬似パラメータを生成するためのASPのヒント2日前、私はエンタープライズ検索エンジンの現場バージョンに取り組んでいましたが、一部のサイトがサイトコンテンツにリンクできることがわかりました。 。私はそれを奇妙に見て、データベースIDの自動番号付けルールに従ってリンクされていることがわかりました~~私は暇なときに次のことをしました。 % '' //指定された数字の乱数数を生成 '// GUIDを使用することもできます
ASPプログラムとHTMLコードの混合によって引き起こされるメンテナンスの困難を回避するために、この記事では、プログラムとページを分離してプログラミングを容易にするためにテンプレートを使用する方法を紹介します。
ASPを使用してサイトを作成する場合、プログラムコードとHTMLコードがASPファイルに混合される状況がしばしばあります。これを行うには多くの欠点があります:
1.プログラミングの場合は、ページレイアウトを設計および配置する必要があります。これにより、コードを混乱させ、理解し、不規則にすることができます。
2。ページの外観を変更する必要がある場合、HTMLパーツを変更するだけでなく、ASPコードを変更する必要がありますが、これは容易ではありません。
それで、どうすればこれらのトラブルを避けることができますか?
答えは、テンプレートファイルを使用してASPコードとHTMLページを分離することであり、すべての問題が解決されます。テンプレートを使用するには、次の利点があります。
1.サイト全体の外観は、非常に短い時間で交換できます。
2.プログラマーがHTMLコードをタッチせずにプログラミングを抽象化できるようにします。
3.以前のテンプレートを再利用できます。
PHPを使用したプログラムは、PHPにテンプレートプログラム(FastTemplate)があることがわかります。現在の問題は、ASPに同様の機能を実装する方法です。
MicrosoftのASPには、VBScriptとJScriptの2つのスクリプトが付属しています。それらにはすべて、正規表現オブジェクト(regexp)が付属しています。文字列オブジェクトとregexpオブジェクトを使用して、テンプレート関数を簡単に実装できます。 Mu Fengはこれを使用してtemplate.jscript.incファイルを書き込み、このファイルの内容が記事の最後に添付されています。有能な読者は、ニーズに応じて改善できます。
使用方法の説明を次に示します。このファイルはjscriptで記述されているため(もちろんvbscriptに変換するのは簡単です)、デフォルトのスクリプト言語はjscriptに設定する必要があります。つまり、ASPプログラムの最初の行は次のようになります。
最初にテンプレートクラスの使用を紹介させてください。
1。テンプレートオブジェクトを作成:テンプレート(パス)
パラメーター:パス(文字列タイプ)HTMLテンプレートファイルストレージパス。
新しいオペレーターを使用して、テンプレートオブジェクトを作成します。
例:
vartpl = newtemplate(c:// template);
プログラムでは、TPL.TPLPATHを使用してテンプレートパスを取得するか、TPL.TPLPATHを使用してテンプレートパスを変更することもできます。
のように:
tpl.tplpath = d:// template;
2。テンプレートファイルをロードする:template.load(name、file)
パラメーター:名前(文字列タイプ)はテンプレート変数名です。
ファイル(文字列タイプ)テンプレートファイル名。このファイルは、HTMLテンプレートパスに保存されます。
ファイルファイルをテンプレート変数名に読み取ります。
例:
tpl.load(main、test.htm);
この時点で、テンプレート変数メインには、ファイルtest.htmのコンテンツが含まれています。
Tpl.mainを使用して、テンプレート変数メインにアクセスできます。
例:
%= tpl.main%
読んだばかりのtest.htmファイルのコンテンツが表示されます。
3。テンプレートの分割:template.split(name)
パラメーター:名前(文字列タイプ)はテンプレート変数名です。
サブテンプレートを名前で分解します。
例:
上記の例のtest.htmコンテンツは次のとおりです。
-
これがメインテンプレートです。次は次のとおりです
!#tpldefthirdテンプレート。 !#tplendthird
!#tplendSub
-
それで:
tpl.split(main);
実行後、新しいテンプレート変数サブと3番目は生成され、そのコンテンツは!#tpldefSubと!#tplendSubの間のステートメントです。
さらに、メインテンプレート変数のコンテンツも変更されます。
tpl.mainの内容は次のとおりです。これがメインテンプレートです。次は{sub}です
tpl.subのコンテンツは:サブサブテンプレート、{3番目}です
tpl.thirdのコンテンツは:3番目のテンプレートです。
TPLDEFとTplendによって定義されたステートメントブロックは、多くの再ネストで満たされています。
4。テンプレート処理:Template.Parse(name)
パラメーター:名前(文字列タイプ)はテンプレート変数です。
テンプレート内の文字列を、同じ名前のテンプレート変数のコンテンツに巻き毛のブレースに置き換えます。
例:前の例を続けてください
%= tpl.parse(メイン)%
ショー:これがメインテンプレートです。次はサブサブテンプレートと{3番目}です
例からわかるように、Parseはメインテンプレートの{sub}変数のみを置き換え、ネストされた方法で置き換えることはできません。これは、プログラムの柔軟性を高めるために意図的に設計されました。では、メインテンプレートを完全に表示するにはどうすればよいですか?
例:
tpl.sub = tpl.parse(sub); //最初にサブ変数を処理し、メイン変数を処理します。
Response.Write(Tpl.Parse(Main));
5.テンプレート変数をカスタマイズします。
テンプレート変数のカスタマイズは簡単です。割り当てステートメントを使用して、変数を定義および変更できます。
例:
tpl.hahaha =これはカスタム変数です。
tpl.third =元のテンプレートの3番目の変数を変更します。
JScriptは大文字と小文字と小文字の綴りに注意を払う必要があることに注意する必要があります。一般的に、HTMLテンプレートで定義されているテンプレート変数は大文字です。
さらに、テンプレートで使用されるTPLPATH、負荷、解析、および分割変数が内部で使用されます。それらも使用しないでください。そうしないと、プログラムに例外がある場合があります。
ここに完全な例があります:
ステップ1:最初にHTMLテンプレートファイルを作成します。
ここでは、最初にHTMLテンプレートファイルの構成について説明します。まず第一に、それは通常のHTMLファイルとほとんど違いはありませんが、さらにいくつかのタグがあることを除いて。
テンプレートには2種類のマーキングがあります。まず、例を見てみましょう。
test.htm
-!ファイル名:test.htm
HTML
タイトルの例/タイトル
ヘッダ
/ヘッダ
体
これはテーブルの例です。
テーブル
!#tplendmaxx10!#tplendmaxx
!...ここではトリックが使用されていることに注意してください。これは、MAXXテンプレート変数を定義し、値を10に割り当てることです。
tr
TDX/TDTDX Squared/TD
/tr
!#tpldefrow
tr
td {x}/tdtd {xx}/td
/tr
!#tplendrow
/テーブル
上記のデータの{count}行があります。
/体
/HTML
-
上記からわかるように、{x}、{xx}、{count}などの表記は、定義テンプレート変数です。それらはASPプログラムに置き換えられます。
および!#tpldefrow ...!#tplendrowは、ステートメントブロック行を定義することです。 ASPプログラムでは、行ブロックを複数回繰り返すことができます。
ステップ2:ASPプログラムを設計します。
test.asp
-%@言語= jscript%
!#includefile = template.jscript.inc
%
vartpl = newtemplate(c:// inetpub // wwwroot);
varstr =;
Vari;
tpl.load(main、test.htm);
tpl.split(main);
tpl.count = 0;
for(i = 1; i = tpl.maxx; i ++)// tpl.maxxはテンプレートで10として定義されます。
{
tpl.x = i;
tpl.xx = i*i;
str+= tpl.parse(row);
tpl.count ++;
}
tpl.row = str;
tpl.maxx =; //このテンプレート変数をクリアして、表示されないようにします。
%
%= tpl.parse(メイン)%
-
上記のプログラムには、1〜10の正方形のテーブルが表示されます。
通常、テンプレートを使用する場合は、最後の行にページを表示するステートメントを追加するだけです。したがって、プログラム全体が非常に明確に見えます。現時点では、テンプレートファイルを編集して、ページ全体の外観を変更するだけです。
テンプレートファイルについては、HTMLファイル、ASPファイル、さらにはプログラム自体などのファイルになり、複数のテンプレートをプログラムにロードすることができます。
テンプレートを適切に使用すると、作業が簡単になります。
添付ファイル:テンプレートソースプログラム
!ファイル名:template.jscript.inc
%
/*******************************************/
/*templateclass*/
/*著者:*/
/*日付:6-09*/
/*******************************************/
// templatemethoddefine
functiontemplate_parse(name)
{
if(this [name] == null)
戻る;
varreg = newRegexp({(// w*)}、ig);
varstr = newstring(this [name]);
vararr = str.match(reg);
Vari;
if(arr!= null)
for(i = 0; iarr.length; i ++)
{
key = arr.slice(1、-1);
reg = newRegexp(arr、ig);
if(this [key]!= null)
str = str.replace(reg、this [key]);
}
ReturnStr;
}
functiontemplate_split(name)
{
varlen = 0;
vararr;
if(this [name] == null)
戻る;
vartemplate_exp = newRegexp(!#tpldef+(// w*)*((。| // n)*)!#tplend+// 1*、i);
while(this [name] .search(template_exp)!= -1)
{
arr = this [name] .match(template_exp);
この[arr [1} = arr [2];
この[name] = this [name] .replace(template_exp、{+arr [1]+});
this.split(arr [1]);
}
}
functiontemplate_load(name、filename)
{
varfso = newactivexobject(scripting.filesystemobject);
varfile = fso.buildpath(this.tplpath、filename);
if(fso.fileexists(file))
{
varf = fso.opentextfile(file、1);
この[name] = f.readall();
}
}
// TemplateConstructor
functionTemplate(パス)
{
//財産
this.tplpath = path;
//方法
this.parse = template_parse;
this.split = template_split;
this.load = template_load;
}
%
共有:ASPチュートリアル:単純なAJAXの例ASPチュートリアル:AJAX index.aspに関する簡単な例:プログラムコードHTMLヘッドメタhttp-equiv = content-type content = text/html; charset = gb2312 /titleajaxシンプルアプリケーション /タイトルスクリプト言語= javascript // xmlhttprequestオブジェクトvar request = false; {re