แนะนำ: การเปรียบเทียบหลายวิธีในการสร้างไฟล์ HTML แบบคงที่สำหรับ ASP มีประโยชน์มากมายในการแปลงหน้าแบบไดนามิกเพื่อสร้างไฟล์ HTML แบบคงที่เช่นการสร้างหน้าเว็บ HTML นั้นเอื้อต่อการถูกรวมเข้าด้วยกันโดยเครื่องมือค้นหา (โดยเฉพาะสำหรับหน้าเว็บที่ยอมรับพารามิเตอร์แบบไดนามิก) เมื่อเข้าถึงแผนกต้อนรับส่วนหน้าจะถูกแยกออกจากการเข้าถึงข้อมูลช่วยลดแรงกดดันในการเข้าถึงฐานข้อมูลและเร่งการเปิดหน้าเว็บ
ใช้ ASP เพื่อสร้างรหัสการตรวจสอบสีภาพ
รหัส 49 บรรทัดสามไฟล์
ไฟล์ asp: code.asp
ไฟล์ข้อมูล: body.fix, head.fix
การใช้งาน: <img src = code.asp>
<%ตัวเลือก ExplicitResponse.buffer = TruenumCodeFunction numCode () Response.expiRes = -1 Response.Addheader Pragma, ไม่มีการตอบสนองแบบแคชแคชแคชแคชแบบไม่แคช (899*rnd 1000) zimg (4), nstr nstr = cstr (znum) สำหรับ i = 0 ถึง 3 zimg (i) = cint (mid (nstr, i 1,1)) ถัดไป dim pos set ados = server.createObject (adodb.stream) Ados.mode = 3 Ados.Type = 1 ADOS1.TYPE = 1 ADOS1.OPEN ADOS.LoadFromFile (Server.Mappath (body.fix)) Ados1.write Ados.read (1280) สำหรับ i = 0 ถึง 3 Ados.position = (9-zimg (i))*320 Ados1.position = i*320 Ados1 Ados.loadFromFile (Server.Mappath (head.Fix)) pos = lenb (Ados.read ()) Ados.position = POS สำหรับ i = 0 ถึง 9 ขั้นตอนที่ 1 สำหรับ j = 0 ถึง 3 Ados1.position = i*32 J*320 Ados.position = POS 30*Ji*120 Ados.Write Ados1. Ados.Position = 0 Response.BinaryWrite Ados.read () Ados.Close: SET ADOS = ไม่มีอะไร ADOS1.CLOSE: SET ADOS1 = NOTEEND FUNCTION 'รหัส ASP ที่สร้างโดย blueidea.com เว็บทีม V37 2003-7-25%> |
รหัสคำอธิบาย:
| response.buffer = true Numcode ฟังก์ชัน numcode () Response.expires = -1 Response.addheader Pragma ไม่มีแคช response.addheader cache-ctrol, ไม่มีแคช Dim znum, i, j Dim Ados, Ados1 ตัวจับเวลาแบบสุ่ม |
สร้างตัวเลขสี่หลักสุ่ม:
| znum = cint (8999*rnd 1000) |
ผ่านเซสชัน
| เซสชัน (getCode) = znum |
สิ่งนี้สำหรับลูปคือการใส่หมายเลขสุ่มลงในอาร์เรย์ด้วยตัวห้อย 3 ซึ่งสะดวกสำหรับการให้การแปลงอาร์เรย์ที่ตามมา
| Dim Zimg (3), NSTR NSTR = CSTR (ZNUM) สำหรับ i = 0 ถึง 3 zimg (i) = cint (mid (nstr, i 1,1))) ต่อไป สลัว pos |
'กำหนดวัตถุไบนารี 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 หนึ่งจุด 10x10 คะแนนหนึ่งหมายเลขหนึ่งจุดสามไบต์ (8 บิตในไบนารี, 00 ~ ff ในเลขฐานสิบหก)
'บรรทัด 10 คะแนน 30 ไบต์จุดสิ้นสุดบรรทัดเครื่องหมาย 00 00 2 ไบต์ 32 ไบต์ดังนั้นภาพ 10x100 ที่มีความกว้างเล็กกว่าความยาวของแต่ละหมายเลข 10x10 คือ 320 ไบต์
'หากความยาวมีขนาดใหญ่กว่าความกว้างจะไม่มีเครื่องหมายปลายบรรทัดของ 0000 ซึ่งเป็น 300 ไบต์โดยตรง
นี่คือรายละเอียดข้อมูล BMP 24 บิต
'สำหรับหัวมันก็ง่ายมากรวมถึงความยาวและความกว้างการทำเครื่องหมายเริ่มต้นภาพ ฯลฯ ~~ มันเป็นเพียง 54 ไบต์ซับซ้อนน้อยกว่า JPG หรืออะไรบางอย่าง
| Ados.loadFromFile (Server.Mappath (body.fix))) ADOS1.WRITE ADOS.READ (1280) |
'ครั้งแรกสำหรับลูปแยกตัวเลขสี่ตัวที่สอดคล้องกันจากอาร์เรย์ดิจิตอล 10x100 ตามลำดับของตัวเลขสุ่มที่สร้างขึ้น
แต่อาร์เรย์แนวตั้งของตัวเลข
| สำหรับ 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 ไบต์เพื่อเพิ่มข้อมูลกราฟิก
ที่สองสำหรับลูปทำการแปลงอาร์เรย์ของตัวเลขแปลงบล็อกแนวตั้งเป็นบล็อกแนวนอน
วิธีการคือการแยก 4 ครั้งของ 320 ไบต์และเขียนลงในวัตถุ ADOS จากนั้นแยกข้อมูลภาพที่ชดเชยจากบรรทัดที่สอง
30 ไบต์เป็นเพราะความกว้างของ BMP สูงกว่ายาวโดยไม่มีเครื่องหมายปลาย 00 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 Response.binaryWrite Ados.read () Ados.Close: ตั้งค่า ADOS = ไม่มีอะไร ADOS1.CLOSE: SET ADOS1 = ไม่มีอะไร ฟังก์ชันสิ้นสุด |
แบ่งปัน: เกี่ยวกับการแยกรหัสและหน้า ASP เพื่อหลีกเลี่ยงปัญหาการบำรุงรักษาที่เกิดจากการเขียนแบบผสมของโปรแกรม TML โปรแกรม ASP บทความนี้แนะนำวิธีการใช้เทมเพลตเพื่อแยกโปรแกรมและหน้าเพื่อทำให้การเขียนโปรแกรมง่ายขึ้น เมื่อใช้ ASP เพื่อสร้างไซต์ไฟล์ ASP มักจะปรากฏขึ้นรหัสโปรแกรมและ HTM