推奨:ASPの静的HTMLファイルを生成するためのいくつかの方法の比較動的ページを変換して静的HTMLファイルを生成することには多くの利点があります。たとえば、HTML Webページを生成するなど、検索エンジン(特に動的パラメーターを受け入れるページ)に含まれることができます。フロントデスクにアクセスするときは、データアクセスから分離され、データベースアクセスへの圧力を軽減し、Webページの冒頭を高速化します。
ASPを使用して、画像色検証コードを生成します
49行のコード、3つのファイル
ASPファイル:code.asp
データファイル:body.fix、head.fix
使用法:<img src = code.asp>
<%オプションoption rebricitysponse.buffer = truenumcodefunction numcode()response.expires = -1 response.addheader pragma、no-cache response.addheader cache-ctrol、no-cache dim znum、i、j dim ados、ados1ランダム化タイマーznum = cint(8999*rnd 1000)セッションzimg(4)、nstr nstr = cstr(znum)for i = 0〜3 zimg(i)= cint(mid(nstr、i 1,1))next dim pos set ados = server.createobject(adodb.stream)ados.mode = 3 ados.type = 1 ados.open set ados1 = server.createobject ados1.type = 1 ados1.open ados.loadfromfile(server.mappath(body.fix))ados1.write ados.read(1280)for i = 0 〜3 ados.position =(9-zimg(i))*320 ados1.position = i*320 Ados.Read(320) ados.loadfromfile(server.mappath(head.fix))pos = lenb(ados.read())ados.position = pos = ados.position = j = 0から3 ados1.position = i*32 J Ados.Position = 0 Response.BinaryWrite Ados.Read()Ados.Close:set Ados1.Close:set ados1 = noweend function 'blueidea.com WebチームV37 2003-7-25%>によって作成されたASPコード |
コード説明:
| Response.buffer = true numcode functionnumcode() Response.Expires = -1 Response.Addheader Pragma、No-Cache Response.Addheader Cache-Ctrol、No-Cache Dim Znum、I、J Dim Ados、Ados1 タイマーをランダム化します |
ランダムな4桁の数字を生成します。
| Znum = Cint(8999*rnd 1000) |
セッションに合格します
| セッション(getCode)= Znum |
これは、ループの場合、randorm数を添えサブスクリプト3のアレイに配置することです。これは、後続の配列変換を提供するのに便利です。
| Dim Zimg(3)、NSTR NSTR = CSTR(ZNUM) i = 0〜3の場合 zimg(i)= cint(mid(nstr、i 1,1)) 次 Dim Pos |
'画像データ操作のための2つのadodb.streamバイナリオブジェクトを定義します。
| ados = server.createobject(adodb.stream)を設定します ados.mode = 3 ados.type = 1 ados.open ados1 = server.createobject(adodb.stream)を設定します ados1.mode = 3 ados1.type = 1 ados1.open |
'ロード0〜9デジタルデータ10x100、GBRアレイデータ、各320バイト、10桁3200バイト
'BGR 1ポイント、10x10ポイント1つの数字、1ポイント3バイト(バイナリで8ビット、16進数で00〜ff)
'10ポイントのライン30バイトラインエンドマーク00 00 00 2バイト32バイトなので、各番号10x10の長さよりも小さい幅の10x100画像は320バイトです
'長さが幅よりも大きい場合、0000のラインエンドマークはありません。これは直接300バイトです。
これらは、BMP 24ビットデータの詳細です
「頭に関しては、長さと幅、画像のマーキングなどを含む非常にシンプルです。
| ados.loadfromfile(server.mappath(body.fix)) ados1.write ados.read(1280) |
'ループの最初の場合は、生成された乱数の順に、10x100デジタルアレイから対応する4つの数値を抽出します。
しかし、数字の垂直配列
| i = 0〜3の場合 ados.position =(9-zimg(i))*320 ados1.position = i*320 ados1.write ados.read(320) 次 |
'使用したADOのデータをクリアし、新しい画像ヘッダー54バイトを置き換えるヘッダーファイルを呼び出します
| ados.loadfromfile(server.mappath(head.fix)) pos = lenb(ados.read()) ados.position = pos |
'POS位置を指定し、54バイトで位置をオフセットしてグラフィックデータを追加します
ループの2番目は数字の配列変換を実行し、垂直ブロックを水平ブロックに変換します
この方法は、320バイトの4回を抽出してADOSオブジェクトに書き込み、2番目の行からオフセットされた画像データを抽出することです。
30バイトは、BMP幅が00 00ラインエンドマークなしで長いより大きいためです
| 以下は引用されたコンテンツです。 I = 0〜9ステップ1の場合 j = 0〜3の場合 ADOS1.POSITION = I*32 J*320 ados.position = pos 30*ji*120 ados.write ados1.read(30) 次 次 Ados.Position = 0 Response.binaryWriteは、画像データをクライアントに直接送信します Response.ContentType = Image/BMP respons.binarywrite ados.read() Ados.Close:Ados = Nothingを設定します ADOS1.CLOSE:ADOS1 =何も設定しません エンド関数 |
共有:ASPコードとページの分離についてASPプログラムTMLコードの混合執筆によって引き起こされるメンテナンスの問題を回避するために、この記事では、テンプレートを使用してプログラムとページを分離してプログラミングを容易にする方法を紹介します。 ASPを使用してサイトを作成する場合、ASPファイルが頻繁に表示され、プログラムコードとHTMが表示されます