แนะนำ: การเรียนรู้อินสแตนซ์ของ ASP: ฟังก์ชั่นที่สร้างชื่อไฟล์แบบสุ่ม ต่อไปนี้เป็นเนื้อหาที่ยกมา: <html> <meta http-equiv = refresh content = 2> <!-วางสิ่งนี้
Active Server Pager (หน้าแรกเซิร์ฟเวอร์แบบไดนามิกที่อ้างถึง ASP) สามารถรับรู้ฟังก์ชั่นตัวนับหน้าได้อย่างง่ายดายโดยการอ่านและเขียนไฟล์เซิร์ฟเวอร์การรวมภาษาสคริปต์ (VBScript หรือ JScript) และรหัส HTML ตำรา ASP ที่ได้รับความนิยมและบทช่วยสอน ASP บนอินเทอร์เน็ตได้พูดคุยเกี่ยวกับปัญหาการออกแบบของเคาน์เตอร์ ASP แต่พวกเขาทั้งหมดง่ายเกินไปเช่นไม่พูดถึงวิธีการแยกสคริปต์ตัวนับและหน้าหลักและการใช้งานเคาน์เตอร์รูปภาพ ด้านล่างเป็นประสบการณ์ของผู้เขียนในการสร้างเว็บไซต์ NT สำหรับหน่วยและให้ตัวอย่างเพื่อพูดคุยเกี่ยวกับการออกแบบเคาน์เตอร์ ASP ทีละขั้นตอน ฉันหวังว่ามันจะให้แรงบันดาลใจให้กับผู้เริ่มต้นของ ASP และชาวเน็ตที่สนใจโปรแกรม ASP Web
(i) เคาน์เตอร์ง่ายๆ
ASP มีส่วนประกอบเซิร์ฟเวอร์ที่ใช้งานอยู่ห้าตัวคือส่วนประกอบการเข้าถึงฐานข้อมูลส่วนประกอบการเข้าถึงไฟล์ส่วนประกอบโฆษณาส่วนประกอบความสามารถของ Brower และส่วนประกอบการเชื่อมโยงเนื้อหา ตัวนับที่เราต้องการออกแบบด้านล่างคือการอ่านและเขียนไฟล์เซิร์ฟเวอร์ผ่านส่วนประกอบการเข้าถึงไฟล์ (ส่วนประกอบการเข้าถึงไฟล์) แนวคิดอัลกอริทึมคือ: ใช้ไฟล์ข้อความ (ASCII) บนเซิร์ฟเวอร์เพื่อจัดเก็บค่าที่นับ เมื่อใดก็ตามที่มีการเข้าถึงหน้าเว็บค่าจะถูกอ่านออกจากไฟล์ที่แสดงต่อผู้ใช้และเพิ่มค่าด้วย 1 และค่าเพิ่มจะถูกเขียนกลับไปที่ไฟล์
คำสั่ง ASP และคำอธิบายสำหรับการเขียนข้อมูลไปยังไฟล์จำนวนเซิร์ฟเวอร์มีดังนี้:
countfile = server.mappath (ชื่อไฟล์ที่ใช้ในการจัดเก็บค่าตัวนับ)
วิธีการเข้าถึงเซิร์ฟเวอร์เซิร์ฟเวอร์ Mappath (PATH) แปลงเส้นทางที่ไฟล์ที่เก็บค่าตัวนับจะอยู่ในพา ธ ทางกายภาพ
ตั้งค่า fileObject = server.createObject (scripting.filesystemobject)
ใช้วิธีการ createObject เพื่อกำหนดไฟล์ filesystemobject วัตถุ
ตั้งค่า outstream = server.createTextFile (fileObject, true, false)
ใช้ Object FilesySstemObject เพื่อให้เมธอด createTextFile เพื่อสร้างไฟล์ข้อความโดยที่พารามิเตอร์จริงหมายถึงการเขียนทับไฟล์ต้นฉบับและเท็จหมายความว่าไฟล์เป็นประเภท ASCII
Outstream.WriteLine Data ที่จะเขียน
Outstream.WriteLine เขียนบรรทัดข้อมูลไปยังไฟล์
ไวยากรณ์ ASP สำหรับการอ่านข้อมูลจากไฟล์เซิร์ฟเวอร์มีดังนี้:
countfile = server.mappath (ชื่อไฟล์ที่ใช้ในการจัดเก็บค่าตัวนับ)
ตั้งค่า fileObject = server.createObject (scripting.filesystemobject)
Set InstrEM = Server.OpentExtFile (fileObject, 1, false, false)
ใช้ Object FilesystemObject เพื่อให้ Method OpEntextFile สร้างข้อความ? ในกรณีที่พารามิเตอร์จริงหมายถึงการเขียนทับไฟล์ต้นฉบับเท็จหมายความว่าไฟล์เป็นประเภท ASCII เพื่ออ่าน data = instream.readline โดยที่ stream.readline เป็นบรรทัดของข้อมูลที่อ่านจากไฟล์
ต่อไปนี้เป็นตัวอย่างของตัวนับที่ใช้ ASP เพื่อใช้ฟังก์ชันตัวนับหน้า (simpleCounter.asp) ฉันได้แสดงความคิดเห็นในรายละเอียดคำสั่งในรหัส คุณสามารถวางรหัสต่อไปนี้ลงในรหัสหน้าคุณต้องนับ แน่นอนเซิร์ฟเวอร์ของคุณจะต้องรองรับ ASP และคุณได้สร้างไฟล์ข้อความ simpleCounter.txt ด้วยเนื้อหา 0 ในไดเรกทอรีที่โฮมเพจตั้งอยู่
ตัวนับ ASP ง่าย ๆ SimpleCounter.asp รหัสและความคิดเห็น:
| ต่อไปนี้เป็นเนื้อหาที่ยกมา: $#@60;% countFile = server.mappath (simpleCounter.txt) ไฟล์ aspconter.txt เป็นไฟล์ข้อความที่ใช้ในการจัดเก็บหมายเลข เนื้อหาเริ่มต้นโดยทั่วไปคือ 0 ตั้งค่า fileObject = server.createObject (scripting.filesystemobject) ตั้งค่า = fileObject.opentextfile (countfile, 1, false, false) counter = out.readline |
อ่านค่าในไฟล์เคาน์เตอร์
ออก
ปิดไฟล์
| ต่อไปนี้เป็นเนื้อหาที่ยกมา: ตั้งค่า fileObject = server.createObject (scripting.filesystemobject) ตั้งค่า = fileObject.createTextFile (countFile, true, false) application.lock |
แอปพลิเคชันวิธีการล็อคห้ามไม่ให้ผู้ใช้รายอื่นเปลี่ยนค่าตัวนับ
เคาน์เตอร์ = เคาน์เตอร์ 1
มูลค่าของเคาน์เตอร์เพิ่มขึ้น 1
out.writeline (เคาน์เตอร์)
เขียนค่าตัวนับใหม่ไปยังไฟล์
application.unlock
หลังจากใช้ Method Application.unlock ให้ผู้ใช้รายอื่นเปลี่ยนค่าตัวนับ
| ต่อไปนี้เป็นเนื้อหาที่ยกมา: Response.write (คุณเป็นคนแรก) Response.write ($#@60; Font Color = Red $#@62;) Response.write (เคาน์เตอร์) |
โอนค่าตัวนับไปยังเบราว์เซอร์และแสดงให้ผู้ใช้เป็นสีแดง
| ต่อไปนี้เป็นเนื้อหาที่ยกมา: Response.write ($#@60;/font $#@62;) Response.write (ผู้เยี่ยมชม) ออก |
ปิดไฟล์
%$#@62;
(ii) เคาน์เตอร์คั่นด้วยหน้า
ในแอปพลิเคชันจริงหน้าหลักและโปรแกรมเคาน์เตอร์จะถูกแยกออก การนับหน้าสามารถทำได้โดยการเพิ่มรหัสที่ยกมาลงในหน้าเว็บที่ต้องนับ นี่คือเคาน์เตอร์ฟรีที่เรามักจะใช้สำหรับการใช้งานออนไลน์ แต่มักจะทำโดย CGI ที่นี่เราเพียงแค่ต้องแก้ไขตัวนับง่าย ๆ ที่เราทำด้วย ASP มาก่อนเล็กน้อยจากนั้นเพิ่มคำสั่ง JavaScript ไปยังหน้าเพื่ออ้างอิงซึ่งจะตระหนักถึงฟังก์ชั่นตัวนับแยกออกจากหน้า ด้วยวิธีนี้มันสะดวกมากไม่ว่าจะเป็นตัวนับสำหรับหน้าหลักหรือนับสำหรับหน้าเฉพาะ เห็นได้ชัดว่าคุณต้องเปลี่ยนชื่อไฟล์และชื่อไฟล์ซอร์สโค้ด ASP ที่เก็บค่าตัวนับเป็นตัวนับหลายตัวนับ
counter txtcounter.asp รหัสคั่นจากหน้า:
| ต่อไปนี้เป็นเนื้อหาที่ยกมา: $#@60;% countFile = server.mappath (txtcounter.txt) ตั้งค่า fileObject = server.createObject (scripting.filesystemobject) ตั้งค่า = fileObject.opentextfile (countfile, 1, false, false) counter = out.readline ออก ตั้งค่า fileObject = server.createObject (scripting.filesystemobject) ตั้งค่า = fileObject.createTextFile (countFile, true, false) application.lock เคาน์เตอร์ = เคาน์เตอร์ 1 out.writeline (เคาน์เตอร์) application.unlock Response.writedocument.write (& Counter &) |
ในการแสดงค่าตัวนับบนหน้าอย่างถูกต้องให้เรียกใช้เอกสารฟังก์ชัน vbscript.write
ออก
%$#@62;
เพิ่มรหัสต่อไปนี้ในหน้าเพื่อนับ:
$#@60; p $#@62;
คุณเป็นคนแรก
$#@60; สีตัวอักษร = สีแดง $#@62;
$#@60; ภาษาสคริปต์ = javascript src = http: //202.101.209.75/asptemp/counter/txtcounter.asp$#@62;
// เมื่ออ้างถึงเซิร์ฟเวอร์และเส้นทางไดเรกทอรีที่ตัวนับ ASP อยู่
$#@60;/สคริปต์ $#@62;
$#@60;/แบบอักษร $#@62;
ผู้เยี่ยมชม
$#@60;/p $#@62;
(iii) ตัวนับภาพแยกออกจากหน้า
การแสวงหาของผู้คนไม่มีที่สิ้นสุดบางทีคุณอาจต้องมีตัวนับหมายเลขกราฟิกที่เป็นส่วนตัวมากกว่าแทนที่จะเป็นตัวนับหมายเลขข้อความง่าย ๆ ไม่มีปัญหาตอนนี้ลองมาดูวิธีการใช้ฟังก์ชันตัวนับกราฟิกโดยใช้ ASP ในการใช้ตัวนับกราฟจุดสำคัญคือวิธีการแปลงค่าข้อมูลในไฟล์ตัวนับเป็นตัวแทนกราฟิกที่สอดคล้องกัน เนื่องจากหมายเลขทศนิยมมีตัวเลขที่แตกต่างกันสิบหมายเลขรวมถึง 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 เราจึงต้องมีภาพที่สอดคล้องกันสิบภาพและชื่อไฟล์ของภาพจะต้องสอดคล้องกับหมายเลขที่แสดง ตัวอย่างเช่นชื่อไฟล์ของภาพที่สอดคล้องกับ 0 คือ 0.GIF และ 1 คือ 1.GIF, ... (ภาพสามารถทำได้โดยใช้เครื่องมือเช่น Photoshop หรือดาวน์โหลดจากอินเทอร์เน็ต) ที่นี่เราต้องการใช้ฟังก์ชั่น vbscript len (สตริง | varname) และ mid (string, start [, length]) จำนวนบิตของค่าตัวนับสามารถรับได้จาก LEN (ตัวนับ) และจำนวนในบิต I-TH ของค่าตัวนับสามารถรับได้จากกลาง (เคาน์เตอร์, i, 1) เราสามารถใช้ค่านี้เพื่อเรียกภาพดิจิตอลที่เกี่ยวข้อง การใช้คำสั่งสำหรับการวนรอบมันไม่ยากที่จะได้รับตัวเลขในแต่ละบิตของค่าตัวนับและแปลงเป็นภาพดิจิตอลที่เกี่ยวข้องเพื่อให้เราสามารถตระหนักถึงการแปลงจากค่าข้อความเป็นหมายเลขภาพ ด้านล่างเป็นตัวอย่างของตัวนับภาพที่เขียนใน ASP เนื่องจากรหัสส่วนใหญ่ได้รับการวิเคราะห์ก่อนหน้านี้มีคำอธิบายประกอบบางคำเท่านั้นในรหัส
ตัวนับภาพ imgcounter.asp รหัสแยกออกจากหน้า:
$#@60;%@language = vbscript% $#@62;
$#@60;%
ภาพหรี่ (20)
กำหนดอาร์เรย์เพื่อจัดเก็บคำสั่งที่แสดงภาพแต่ละภาพแต่ละภาพ
| ต่อไปนี้เป็นเนื้อหาที่ยกมา: countFile = server.mappath (imgcounter.txt) ตั้งค่า fileObject = server.createObject (scripting.filesystemobject) ตั้งค่า = fileObject.opentextfile (countfile, 1, false, false) counter = out.readline ออก ตั้งค่า fileObject = server.createObject (scripting.filesystemobject) ตั้งค่า = fileObject.createTextFile (countFile, true, false) application.lock เคาน์เตอร์ = เคาน์เตอร์ 1 out.writeline (เคาน์เตอร์) application.unlock countlen = len (เคาน์เตอร์) |
รับจำนวนบิตของค่าตัวนับ
| ต่อไปนี้เป็นเนื้อหาที่ยกมา: สำหรับ i = 1 ถึงเคาน์ตี รูปภาพ (i) = $#@60; img src = & http: //202.101.209.75/asptemp/counter/images/&/ & mid (ตัวนับ, i, 1) & .gif $#@62; $#60;/img $#@62; |
รหัสการแสดงผล (HTML) ของภาพที่สอดคล้องกับค่าตัวเลขในแต่ละบิตนั้นได้มาจากคำสั่งลูปและเก็บไว้ในอาร์เรย์ โปรดให้ความสนใจกับเซิร์ฟเวอร์จริงและเส้นทางไดเรกทอรีของภาพเมื่อใช้งานโดยเฉพาะ
Response.writedocument.write (& รูปภาพ (i) &);
เรียกฟังก์ชั่น document.write เพื่อส่งออกรหัส HTML ที่แสดงภาพดิจิตอล
ต่อไป
ออก
%$#@62;
เพิ่มรหัสต่อไปนี้ในหน้าเพื่อนับ:
$#@60; p $#@62;
คุณเป็นคนแรก
$#@60; ภาษาสคริปต์ = JavaScript src = http: //202.101.209.75/asptemp/counter/imgcounter.asp$#@62;
// เมื่ออ้างถึงเซิร์ฟเวอร์และเส้นทางไดเรกทอรีที่ตัวนับ ASP อยู่
$#@60;/สคริปต์ $#@62;
ผู้เยี่ยมชม
$#@60;/p $#@62;
หมายเหตุ: เคาน์เตอร์ ASP ทั้งหมดข้างต้นได้รับการทดสอบและส่งผ่านภายใต้ Windows NT Server 4.0 (จีน) / IIS3.0 สภาพแวดล้อมใด ๆ ต่อไปนี้สามารถดำเนินการ ASP:
1. Windows NT Server 4.0 / IIS3.0 หรือสูงกว่า
2. Windows NT Workstation 4.0 / Microsoft Peer Web Service 3.0 ขึ้นไป
3. Windows 95/98 / Microsoft Personal Web Server 1.0a หรือสูงกว่า
แบ่งปัน: ตัวอย่าง ASP คำอธิบาย: ใช้การแบ่งหน้าเพื่อรับรู้การแสดงผลของบทความยาว หน้าบทความยาวจะแสดงด้วยการแบ่งหน้า หากคุณต้องการใช้ ASP เพื่อใช้ฟังก์ชั่นนี้คุณสามารถค้นหาได้ว่าเฉพาะวิธีการเพจที่ขึ้นอยู่กับจำนวนคำ อย่างไรก็ตามวิธีนี้มีข้อผิดพลาดนั่นคือถ้ามีรหัส UBB หรือ HTML ในเนื้อหาบทความของคุณมันสามารถทำให้มันไประหว่าง [รหัส] [/รหัส] ได้อย่างง่ายดาย