相変わらずASPを使ってWebサイトの開発を行っていますが、同じコードを使いまわすケースが多いためインクルードファイルを多様しています。
インクルードファイルは、サーバサイドスクリプトとデザインのテンプレートファイル。
先日ふと思ったのが、
<% ホニャララ %>
みたいなASPファイルを作成するとインクルードファイルの切り替えができないことに気が付きました。
ASPファイルの管理が煩雑化するため、
①共通で使えるASPを作成
②FileSystemObjectを用いてテンプレートファイルを切り替える
③ASPで処理したデータをテンプレートに埋め込む場合は、独自ルールのタグを記述する
手法に切り替えました。
詳しい内容は、
・FSO(FileSystemObject)をコール、インスタンスを作成
・OpenTextFileでファイルを開く。
・ReadLineメソッド一行ずつ読み込む。
・独自タグ(以下の場合{ xxxx })があったら、ASP側で処理した内容を埋め込む。
といった感じ。
または、
・FSO(FileSystemObject)をコール、インスタンスを作成
・OpenTextFileでファイルを開く。
・ReadAllメソッドでテンプレート内容を一気に読み込む
・テンプレート内の独自タグをreplace関数で置換する
かな。
一行ずつリードする手法のスクリプトはこんな感じ。
-------------------------------------------------
var _objFSO = Server.CreateObject("Scripting.FileSystemObject");
var _objTS = _objFSO.OpenTextFile("c:\\templete.html");
var _wkHtmlStr = "";
while(!_objTS.AtEndOfStream){
_wkHtmlStr = _objTS.ReadLine();
if(_wkHtmlStr.indexOf("{ sLinkList }") > 0){
Response.Write("ASP側で処理した内容だよ");
}else{
Response.Write(_wkHtmlStr);
}
}
_objTS.Close();
-------------------------------------------------
勉強になったサイトはこちら。