推奨:ASPコードとページの分離についてASPプログラムTMLコードの誤解によって引き起こされるメンテナンスの困難を回避するために、この記事では、テンプレートを使用してプログラムとページを分離してプログラミングを容易にする方法を紹介します。 ASPを使用してサイトを作成する場合、ASPファイルが頻繁に表示され、プログラムコードとHTMが表示されます
動的ページを変換して静的HTMLファイルを生成することには多くの利点があります。たとえば、HTML Webページを生成するなど、検索エンジン(特に動的パラメーターを受け入れるページ)に含まれることができます。フロントデスクにアクセスするときは、データアクセスから分離され、データベースアクセスへの圧力を軽減し、Webページの冒頭を高速化します。
もちろん、すべてにはその利点と短所があります。 HTMLページを生成すると、これらの静的ファイルを保存するために多くのディスク容量を目に見えて消費します。編集プロセス中にデータベースの読み取りと書き込みに加えて、サーバーディスクの読み取りと書き込みも必要です。ページスタイルの変更は、すべてのHTMLファイルなどを再生する必要があります。
たとえば、多くの検索エンジンは、Webサイトページアドレスのリストを提出できます。動的ファイルを含めることは、もはや問題ではありません(Google SiteMapなど)。私たちは自分で利益と損失を測定して把握する必要がありますが、何があっても、運用方法を知る必要があります。ここでは、他の人の記事を引用して、あなたの参照のためにいくつかの共通生成のアイデアを説明します。
1.次の例では、FSOを直接使用してHTMLコードをファイルに書き込み、.htmlファイル形式を生成します。これは最も原始的です。利点は、それが単純であることであり、不利な点は、ページの変更が不便であることです。私が通常使用する場所は、それを使用してサイトパラメーターファイル全体を生成することです。 (通常、タイトル、名前などのウェブサイトはデータベースに保存されます。config.aspを生成して、データベースへの頻繁なアクセスを避けるためにこれらの変数呼び出しを保存します)
| 以下は引用されたコンテンツです。 <% filename = test.htm request(body)<> thenの場合 fso = server.createObject(scripting.filesystemObject)を設定します htmlwrite = fso.createTextfile(server.mappath(&filename&))を設定します htmlwrite.write htmlwrite.write htmlwrite.close FOUT =何も設定しません FSO =何も設定しません ifを終了します %> form form name = form method = post Action => <入力名=タイトル値=タイトルサイズ= 26> <br> <textarea name = body> body</textarea> <br> <br> <入力タイプ=送信name = submit value =生成html> </form> |
2.ただし、上記の方法に従ってHTMLファイルを生成することは非常に不便です。 2番目の方法は、テンプレートテクノロジーを使用して、テンプレート内の特別なコードの値をフォームまたはデータベースフィールドから受け入れた値に置き換え、テンプレート関数を完了し、最終的に置き換えられたすべてのテンプレートコードでHTMLファイルを生成することです。この技術はより頻繁に使用され、ほとんどのCMSはこの方法を使用しています。
| 以下は引用されたコンテンツです。 template.htm '//テンプレートファイル html> <ヘッド> <タイトル> $ $ title $ by cuoxin.com </title> </head> <ボディ> $ body $ </body> </html> testtemplate.asp '// htmlを生成します <% dim fso、htmlwrite Dim Strtitle、Strcontent、Strout '//ファイルシステムオブジェクトを作成します fso = server.createObject(scripting.filesystemObject)を設定します '// Webテンプレートファイルを開き、テンプレートコンテンツを読み取ります htmlwrite = fso.opentextfile(server.mappath(template.htm)を設定します) strout = f.readall htmlwrite.close strtitle =生成されたWebページタイトル strcontent =生成されたWebページコンテンツ '//テンプレート内のタグを実際のコンテンツに置き換えます ストラウト=交換(ストラウト、$ title $、strtitle) ストラウト=交換(ストラウト、$ body $、strcontent) '//生成する静的ページを作成します htmlwrite = fso.createTextfile(server.mappath(test.htm)、true)を設定 '// Webページにコンテンツを書き込みます htmlwrite.writelineストラウト htmlwrite.close Response.Write静的ページは正常に生成されました! '//ファイルシステムオブジェクトをリリースします htmlwrite = Nothingを設定します FSO =何も設定しません %> |
3. 3番目の方法は、XMLHTTPを使用して動的ページで生成されたHTMLコンテンツを取得し、adodb.streamまたはscripting.filesystemObjectを使用してHTMLファイルに保存することです。 xmlhttp用のHTMLを生成するコードを見つけます。
| 以下は引用されたコンテンツです。 <% '一般的な機能 '1。 URL宛先Webページアドレスを入力すると、return値Gethttppageは宛先WebページのHTMLコードです 関数gethttppage(url) dim http http = server.createobject(msxml2.xmlhttp)を設定します http.open get、url、false http.send() http.ReadyState <> 4の場合 出口機能 ifを終了します gethttppage = bytestobstr(http.responsebody、gb2312) http = Nothingを設定します err.number <> 0の場合、err.clear エンド関数 '2。 lanmaを変換し、xmlhttpを使用して漢字を含むWebページを直接呼び出すと、lanmaがadodb.streamコンポーネントを介して変換できます。 関数bytestobstr(body、cset) DIM OBJSTREAM objstream = server.createobject(adodb.stream)を設定します objstream.type = 1 objstream.mode = 3 objstream.open objstream.write body objstream.position = 0 objstream.type = 2 objstream.charset = cset bytestobstr = objstream.readtext objstream.close objstream = Nothingを設定します エンド関数 txturl = server.mappath(../ index.asp) stext = gethttppage(txturl) fileObject = server.createObject(scripting.filesystemObject)を設定します filename = ../index.htm OpenFile = fileObject.opentextFile(server.mappath(filename)、2、true)を設定 openfile.writeLine(stext) OpenFile = Nothingを設定します %> <スクリプト> アラート(静的Webページの生成が完了します); history.back(); </スクリプト> |
まとめ、これらの3つの方法は、HTMLファイルを生成する最も一般的に使用される方法です。ページの変更は非常に便利であるため、3番目の方法を使用することを好みます。動的ページが変更されたとしても、それは良いことです。 xmlhttpを使用して、もう一度読み取り、生成してください。
共有:Webアプリケーションのキャッシュ互換性設計プロキシを通過した後、クライアントとサービスの間に中間レイヤーが追加されるため、サーバーはクライアントのIPを直接取得できず、サーバー側のアプリケーションは転送アドレスを介してクライアントに直接返すことができません。ただし、転送要求のHTTPヘッダー情報では、http_xが追加されます