CSDN で記事を書くのは初めてです。私の文学的才能と理論的知識は限られています。間違って書いた場合は修正を歓迎します。実際、ASP による HTML 生成に関する記事はすでにインターネット上に数多くあります。ASP+XML 生成方法は、テンプレートを作成せずに、生成するページの元のソース コードを直接参照できるという利点があります。プログラムですが、その時点でこの方法をテストしたところ、安定性が低く、ネットワーク速度の要件が高いことがわかりました (もちろん、サーバー上ではありませんでした)。特に仮想空間では、この方法では私のコード処理が不十分なため、エラーが頻繁に報告されます。簡単に言うと、この記事では、一般的に使用されるもう 1 つの方法である ASP+FSO を使用します。このフレームワークは、大量のページングを処理するときに生成時間を短縮するためにも使用されます。この方法は、ページ ボリュームが大きい一部の ASP ファイル用です。
ここで簡単な例を引用します。 (旅行電子商取引) 全国主要都市のホテル アプリケーションの静的ページ (htm) がページング
1 に表示されます。 アプリケーション システム環境: win2000+ASP+MSSQL/ACCESS (データベースは基本的に関係ありません) +iis5.0
2.1都市
リスト (CityHtml): 静的 HTML 名を定義する 3 つのフィールド (都市 ID (自動番号)、都市名 (北京などの CityName)、生成された HTML プレフィックス名 (北京などの HtmlStartName)) を含む
( Hotel): ここでは、インスタンスへの参照を容易にするために、3 つのフィールド (ホテル ID (自動番号)、都市名 (City)、ホテル名 (HotelName)) のみを作成します。
4.1 ASP ページ (ToHtm.asp) (htm の生成に使用)
5.1 ループ フレーム ページ (IframeToHtm.asp)、htm をバッチ生成するアプリケーション フレームワーク
以下は、
ページをバッチ生成するための 2 ページのループ フレームのソース コードです。 .asp
< !--#include file="conn.asp"-->'データベースに接続します
<%
ディムル、SQL、J
set rs=Server.CreateObject("adodb.recordset")
sql="select * from CityHtml"'全国の都市のリストを開く
rs.open SQL,conn,1,1
rs.eof' が主要都市をループするまで実行します%>
<!--次のアプリケーション フレームワークにより、ToHtml で生成されたページが開きます-->
<IFRame name="LoadRcHtm<%=j%>" フレームボーダー=0 幅=100% 高さ=30 スクロール=いいえ src="ToHtml.asp?City=<%=cstr(rs("city")%>&HtmlStartName =<%=rs("HtmlStart")%>"></IFrame>
<%rs.movenext
loop%>
プログラム ページの生成: ToHtm.asp おそらくソース コードにコメントを書きます **
<!--#include file="conn.asp"-->'データ接続ファイル
<%
On Error Resume Next'フォールト トレランス処理
Dim City の定義は都市を取得してページを生成します
City=Request.Querystring("City")' フレームワークから渡された、生成されたシティ ホテルの値を取得します。これについては後で紹介します。
HtmlStartName=Request.Querystring("HtmlStartName")'生成された HTML ファイル名のプレフィックスを取得します
Dim sql' 検索文字列、ここでは変数を検索せずに直接テーブルを開きます。検索条件を自分で書きます。
sql="[都市] = '" & 都市 & "' " のホテルから * を選択
Dim oRsのデータ操作オブジェクト
Dim PageCounts 'ページング生成を実装するには、ページ数を知る必要があります。
Set oRs = Server.CreateObject("ADODB.Recordset")
oRs.Open Sql,oConn,1,1'City 変数に等しいホテルを開くテーブルを検索します。
oRs.pagesize=10'10 レコードが 1 ページです
PageCounts=oRs.pagecount' 生成するページ数を取得するには、それをループで使用して生成します
Dim fs' は fso ファイル オブジェクトを定義します
Dim フォルダー' 静的ページが保存されているフォルダーの名前
Dim Filestart' は、HTML ファイルを生成するためのプレフィックスを定義します
Set fs=Server.CreateObject("Scripting.FileSystemObject")
ディム・アイ
for i=1 to PageCounts' により、ループ内でページの生成が開始されます。つまり、ページングが生成されます。
ページ=i
oRs.absolutepage=i'ページ番号
rowcount=oRs.pagesize'現在のページのレコード数
フォルダー=サーバー.マップパス("CityHtml")
if (fs.FolderExists(folders)) then' フォルダーが存在するかどうかを判断します
それ以外
fs.CreateFolder(folders)' は、CityHtml フォルダーが存在しない場合に作成します。
終了する場合
i=1 の場合
Filestart=HtmlStartName'最初のページの場合は、ファイル名を定義し、値の名前を渡します。たとえば、beijing は beijing.htm です。
それ以外
Filestart=HtmlStartName&i'2 番目のページが beijing+1 の場合、たとえばページが 2 つある場合、i が 2 に等しい場合、beijing2.htm のようになります...(最後に .htm 拡張子が追加されます)
終了する場合
Dim files は、生成されるテキスト ファイル名変数を定義します
Dim filez'ファイルパス名変数を定義
files=Filestart&".txt"'このファイルの名前
filez=folders&""&"files のテキスト ファイル パス
'ファイルを削除
Dim checkfile' テキスト ファイルが既に存在するかどうかを確認し、存在する場合は削除します
checkfile=server.mappath("CityHtml"&Filestart&".htm")'htm ファイルが既に存在するかどうかを確認し、存在する場合は削除します
if (fs.FileExists(checkfile)) then'htm ファイルが既に存在するかどうかを確認し、存在する場合は削除します
Dim df' ファイル オブジェクトを定義 *使用してファイルを削除*
Set df=fs.GetFile(checkfile)' 削除するファイルを定義します
df.delete' ファイルを削除します
end if' 判断の終わり
Dim ts' は書き込みファイル オブジェクトを定義します
set ts = fs.createtextfile(filez,true) 'ファイルの内容の書き込みを有効にします**ホテル名と静的なページング表示をテキストに書き込むだけです**
ts.write("<Html><Head><Title>Generate"&City&"City Hotel</Title>"&vbcrlf)' その後、メイン ファイルの内容が生成され、Response.write が使用されます。
ts.write("<META http-equiv=Content-Type content=text/html; charset=gb2312>"&vbcrlf)
ts.write("<meta name=keywords content="&city&"ホテル>"&vbcrlf)
ts.write("<link href='/Style/style.css' rel='stylesheet' type='text/css'></head><body topmargin=0>"&vbcrlf)
ts.Write("<TABLE WIDTH=760 cellpacing=0 cellpadding=0 align=center>"&vbcrlf&_
"<TR><TD width='100%'>"&vbcrlf)
'ページング出力の開始
「ここではデジタルページングプログラムの原理については詳しく説明しません。理解できない人はインターネットで検索してください。
薄暗いページ' 現在のページ
Dim Page2'デジタルページング変数
Dim のデジタル ページネーション変数
ページ = 1 の場合
ts.write (" [ホーム] [前のページ] ")
それ以外
ts.write (" <a href="&HtmlStartName&".htm"&" class=blue>[ホーム]</a> <a href="&HtmlStartName&Replace(page-1,1,"")&".htm"& " class=blue>前のページ</a> ")
終了する場合
page2=(ページ-(ページmod 10))/10
ページ 2<1 の場合、ページ 2=0
s=page2*10-1 ~ page2*10+10 の場合
s>0の場合
s=cint(ページ)の場合
ts.write (" <font color='#000000'>["& s & "]</font>")
それ以外
s=1の場合
ts.write (" <a href="&HtmlStartName&replace(s,1,"")&".htm"&" class=blue>["& s &"]</a>")
それ以外
ts.write (" <a href="&HtmlStartName&s&".htm"&" class=blue>["& s &"]</a>")
終了する場合
終了する場合
s=ors.pagecount の場合
のために出る
終了する場合
終了する場合
次
cint(page)=ors.pagecount の場合
ts.write ("[次のページ] [最後のページ]")
それ以外
ts.write (" <a href="&HtmlStartName&page+1&".htm"&" class=blue>[次のページ]</a> <a href="&HtmlStartName&ors.pagecount&".htm"&" class=blue> [最後のページ]</a>")
終了する場合
ts.write("</TD></TR>")
'ページング出力の終わり
do while not ors.eof and rowcount>0 'ホテル名を出力
ts.write("<TR><TD width='100%'>"&oRs.Fields("中国語名")&"</TD></TR>"&vbcrlf)
orRs.movenext
rowcount=rowcount-1'ページ内のレコード数が-1の場合ループ
ts.write("</Table></body></html>"&vbcrlf)
ts.close
set ts=nothing 'オブジェクトを解放します
Dim EditFile' はファイル変数の書き換えを定義します
Set EditFile = fs.GetFile(filez)'書き換えファイルオブジェクトを設定します
EditFile.name= left(EditFile.name,len(EditFile.name)-4)&".htm" 'テキストファイルをhtmに書き換えます
next'ループ生成終了(ページング生成)
set EditFile=nothing 'オブジェクトを解放します
set fs=nothing'オブジェクトを解放する
if err.number<>0 then '生成されたエラーを処理します
Response.write(City&"<A href=ToHtml.asp?City="&City&"&HtmlName="&HtmlStartName&">再更新</A>の更新中に不明なエラーが発生しました")
それ以外
Response.Write(都市&"ホテル更新完了"&Now())
終了する場合
%>