เนื้อหาของบทความนี้คือการใช้คอมโพเนนต์เซิร์ฟเวอร์ ActiveX ของ ASP (ส่วนประกอบ)
1. องค์ประกอบความสามารถของเบราว์เซอร์:
เรารู้ว่าเบราว์เซอร์ที่แตกต่างกันอาจรองรับฟังก์ชันที่แตกต่างกัน ตัวอย่างเช่น เบราว์เซอร์บางตัวรองรับเฟรมและบางตัวไม่รองรับ เมื่อใช้ส่วนประกอบนี้ คุณสามารถตรวจสอบความสามารถของเบราว์เซอร์เพื่อให้หน้าเว็บของคุณสามารถแสดงหน้าต่างๆ สำหรับเบราว์เซอร์ที่แตกต่างกันได้ (เช่น การแสดงหน้าเว็บโดยไม่มี Frame สำหรับเบราว์เซอร์ที่ไม่รองรับ Frame) การใช้ส่วนประกอบนี้ง่ายมาก โปรดทราบว่าหากต้องการใช้ส่วนประกอบนี้อย่างถูกต้อง คุณต้องแน่ใจว่าไฟล์ Browscap.ini เป็นปัจจุบัน (อันที่จริง ทุกเบราว์เซอร์และฟีเจอร์ต่างๆ อยู่ในรายการในไฟล์นี้ คุณจะ เข้าใจหลังจากเปิดด้วยตัวเอง) ไม่เช่นนั้นผลลัพธ์อาจแตกต่างกันมาก เช่น IE5.0 ที่รวมอยู่ใน Win98 เวอร์ชันที่สองจะแสดงเป็น Netscape ในตัวอย่างต่อไปนี้ โดยทั่วไปไฟล์นี้จะอยู่ภายใต้ "WinntSystem32InetSrv" บนเว็บเซิร์ฟเวอร์ สามารถดาวน์โหลดเวอร์ชันล่าสุดได้จาก http://www.asptracker.com/ หรือ http://www.cyscape.com/browscap
ตัวอย่าง: wuf22.asp
<html>
<ร่างกาย>
'หมายเหตุ: การใช้ส่วนประกอบจะคล้ายกับของออบเจ็กต์ แต่ต้องสร้างส่วนประกอบก่อนใช้งาน และไม่จำเป็นต้องสร้างก่อนใช้ออบเจ็กต์บิวท์อิน
<%Set BrowsCap=Server.CreateObject("MSWC.BrowserType")%>
โปรดรอ......
<ป>
<เส้นขอบตาราง=1 การเพิ่มเซลล์=10>
<TR><TD>ประเภทเบราว์เซอร์</TD><TD><%=BrowsCap.Browser%></TD></TR>
<TR><TD>เวอร์ชันของเบราว์เซอร์</TD><TD><%=BrowsCap.version%></TD></TR>
<TR><TD>ไม่ว่าจะรองรับตารางหรือไม่</TD><TD><%=BrowsCap.tables%></TD></TR>
<TR><TD>ไม่ว่าจะรองรับการควบคุม ActiveX หรือไม่</TD><TD><%=BrowsCap.activexcontrols%></TD></TR>
<TR><TD>ไม่ว่าจะรองรับ JavaApplets หรือไม่</TD><TD><%=BrowsCap.javaapplets%></TD></TR>
<TR><TD>รองรับ JavaScript หรือไม่</TD><TD><%=BrowsCap.javascript%></TD></TR>
<TR><TD>รองรับคุกกี้หรือไม่</TD><TD><%=BrowsCap.Cookies%></TD></TR>
<TR><TD>ไม่ว่าจะรองรับเฟรมหรือไม่</TD><TD><%=BrowsCap.Frames%></TD></TR>
<TR><TD>ระบบปฏิบัติการ</TD><TD><%=BrowsCap.Platform%></TD></TR>
<TR><TD>ไม่ว่าจะรองรับ VBScript หรือไม่</TD><TD><%=BrowsCap.vbscript%></TD></TR>
</ตาราง>
<%Set BrowsCap = ไม่มีเลย%>
</ร่างกาย>
</HTML>
หมายเหตุ: ในตัวอย่างนี้ เรายังสัมผัสวิธีการ CreateObject ของวัตถุเซิร์ฟเวอร์ Server.CreateObject ใช้เพื่อสร้างส่วนประกอบ ActiveX ที่ได้รับการลงทะเบียนบนเซิร์ฟเวอร์ (หมายเหตุ: มีวิธีอื่นในการสร้างส่วนประกอบ) แต่อย่าลืมใช้ "Set Object = Nothing" เพื่อปล่อยทรัพยากรให้ทันเวลา นี่ควรติดเป็นนิสัย
2. คอมโพเนนต์การเข้าถึงไฟล์
คอมโพเนนต์ File Access ประกอบด้วยออบเจ็กต์ FileSystemObject และออบเจ็กต์ TextStream คุณสามารถสร้าง ดึงข้อมูล และลบไดเร็กทอรีและไฟล์ได้ ในขณะที่ออบเจ็กต์ TextStream มีฟังก์ชันการอ่านและเขียนไฟล์
ตัวอย่าง wuf23.asp เน้น: ผ่านการฝึกฝนเท่านั้นที่สามารถทำความเข้าใจให้ลึกซึ้งยิ่งขึ้น การฝึกฝนและการเปรียบเทียบผลการรันโปรแกรมเป็นวิธีที่ดีที่สุดในการฝึกฝนทักษะการเขียนโปรแกรมอย่างรวดเร็ว
<%@ ภาษา=VBScript %>
<% ตัวเลือกที่ชัดเจน
' สังเกตเส้นทางที่แน่นอน: C:Inetpubhomeaspwuf23.asp เส้นทางโฮมเพจ: C:Inetpubhome
Dim Path, File, FSO, CTF, Str, StrHTML, StrNoHTML
'ใช้วิธีการ CreateObject เพื่อสร้างวัตถุ FileSystemObject FSO
ตั้งค่า FSO = Server.CreateObject("Scripting.FileSystemObject")
Path = Server.MapPath("test") 'ส่งคืนไดเร็กทอรีทางกายภาพของการทดสอบ (เส้นทางสัมบูรณ์)
'สำหรับตัวอย่างนี้ ประโยคต่อไปนี้จะส่งกลับ Path เดียวกันกับประโยคข้างต้นทุกประการ
'เส้นทาง = Server.MapPath("asptest")
Response.Write Path & "<Br>"
ถ้า FSO.FolderExists(Path) = false ดังนั้น 'ตรวจสอบว่ามีโฟลเดอร์อยู่หรือไม่
FSO.CreateFolder(Path) 'สร้างโฟลเดอร์ใหม่'
สิ้นสุดถ้า
File = Path & "asptest.txt"
'การดำเนินการเขียนไฟล์
ถ้า FSO.FileExists(File) = True จากนั้น 'ตรวจสอบว่ามีไฟล์อยู่หรือไม่
'สร้างวัตถุ TextStream CTF
ตั้งค่า CTF = FSO.OpenTextFile(File, 8, False, 0) 'เปิดไฟล์ ดูรายละเอียดในคำอธิบาย
อื่น
ตั้งค่า CTF = FSO.CreateTextFile(File,False, False) 'ไฟล์ใหม่
สิ้นสุดถ้า
CTF.Write "<P>The first string; " 'เขียน string
CTF.WriteLine "Second string; " 'เขียนสตริงและเพิ่มอักขระขึ้นบรรทัดใหม่
CTF.เขียน "The Third String; "
CTF.Close 'โปรดใช้ความระมัดระวังในการปิดไฟล์
' อ่านการดำเนินการไฟล์
ตั้งค่า CTF = FSO.OpenTextFile (ไฟล์, 1,,0)
Do While CTF.AtEndOfStream <> True 'ตรวจสอบว่าไฟล์สิ้นสุดหรือไม่ (คำสั่งวนซ้ำ)
Str = CTF.ReadLine 'อ่านหนึ่งบรรทัด (แต่ละครั้ง)
StrNoHTML = StrNoHTML & Str & "<BR>" & VbCrLf
StrHTML = StrHTML & เซิร์ฟเวอร์ HTMLEncode(Str) & "<BR>" & VbCrLf
วนซ้ำ
การตอบสนองเขียน StrNoHTML
การตอบสนองเขียน StrHTML
CTF ปิด
Set CTF = Nothing 'ปล่อยวัตถุ
ตั้งค่า FSO = ไม่มีเลย
%>
CTF = FSO.OpenTextFile(File, 8, False, 0) พารามิเตอร์แรกในวงเล็บคือชื่อไฟล์ พารามิเตอร์ตัวที่สองคือ 8 ซึ่งหมายถึงการต่อท้ายเนื้อหาหลังไฟล์ต้นฉบับ ถ้าเป็น 1 ก็คือ หมายถึงอ่านอย่างเดียว หากเป็น 2 ไฟล์ต้นฉบับจะถูกเขียนใหม่ พารามิเตอร์ที่สาม false หมายความว่าหากไม่มีไฟล์ที่ระบุ ไฟล์จะไม่ถูกสร้างขึ้น หากเป็น True แสดงว่าไฟล์ที่ระบุไม่ถูกสร้างขึ้น มีอยู่ไฟล์จะถูกสร้างขึ้น พารามิเตอร์ที่สี่ 0 หมายความว่าไฟล์จะถูกสร้างขึ้นในรูปแบบไฟล์ ASCII หากเป็น -2 แสดงว่าเปิดในรูปแบบดั้งเดิม
CTF = FSO.CreateTextFile(File,False, False) พารามิเตอร์ตัวที่สอง false หมายถึงไม่เขียนทับไฟล์ที่มีอยู่ หากเป็น True จะหมายถึงเขียนทับ (เขียนทับ) ไฟล์ที่มีอยู่ พารามิเตอร์ตัวที่สาม false หมายความว่ารูปแบบไฟล์เป็น ASCII หากเป็น True แสดงว่ารูปแบบไฟล์เป็น Unicode
เมธอด MapPath ของวัตถุเซิร์ฟเวอร์แปลงเส้นทางเสมือนที่ระบุเป็นเส้นทางไฟล์จริง MapPath ถือว่าอักขระ "/" และ "" เหมือนกัน
วิธีการ HTMLEncode ของวัตถุเซิร์ฟเวอร์ช่วยให้คุณสามารถเข้ารหัส HTML สตริงเฉพาะ หรือเพื่อให้เบราว์เซอร์แสดงอักขระเฉพาะได้อย่างถูกต้อง ในตัวอย่างข้างต้น หากไม่ได้เข้ารหัส "<P>" จะไม่ปรากฏ แต่เบราว์เซอร์จะถือเป็นแท็ก HTML คุณสามารถเปรียบเทียบผลลัพธ์ที่ทำงานอยู่ได้
ที่จริงแล้ว องค์ประกอบ File Access ค่อนข้างมีประสิทธิภาพในการใช้งานไฟล์ โฟลเดอร์ และไดรฟ์ และยังมีวิธีการเพิ่มเติมอีกด้วย หากคุณต้องการใช้ความรู้นี้ อย่าลืมนำไปใช้ด้วย
นอกจากนี้ ในตอนนี้ การเขียนตัวนับหน้าเว็บก็เป็นเรื่องง่าย ไม่น่าแปลกใจเลยที่หน้าเว็บจำนวนมากมีตัวนับฟรี แล้วไงล่ะ? ลองเขียนตัวนับแบบกราฟิกด้วยตัวเอง คุณสามารถโกงได้มากเท่าที่คุณต้องการ (ความลับเล็กๆ น้อยๆ: ฉันมีตัวอย่าง wuf24.asp บนหน้าแรกของฉัน)
3. AD Rotator (ส่วนประกอบการพลิกโฆษณา)
ตอนนี้บนอินเทอร์เน็ต ฉันกลัวว่าสิ่งที่น่ารำคาญที่สุดคือแบนเนอร์โฆษณาบนหน้าแรกของผู้อื่น และที่น่ารำคาญที่สุด รายการโปรดคือแบนเนอร์โฆษณาบนหน้าแรกของฉันเอง โฆษณาเหมือนกับสแปม ข้อความมีอยู่มากมายและยากต่อการป้องกัน คุณสามารถสร้างขยะดังกล่าวได้ด้วยตัวเอง ส่วนประกอบ AD Rotator ของ ASP สามารถสุ่มแสดงโฆษณาทุกครั้งที่คุณเปิดหรือโหลดหน้าเว็บซ้ำ ตัวอย่างนี้มีสามส่วน:
รูทีน wuf25.asp
<%@ Language=VBScript %>
<% ตัวเลือกที่ชัดเจน
โฆษณาติ่มซำ
'สร้างวัตถุ AD Rotator
ตั้งค่า adr = Server.CreateObject("MSWC.AdRotator")
adr.Border = 2 'ระบุขนาดเส้นขอบของไฟล์กราฟิก'
adr.Clickable = True 'ระบุว่ารูปภาพที่แสดงเป็นไฮเปอร์ลิงก์หรือไม่
adr.TargetFrame = "_blank" 'ตั้งค่าไฮเปอร์ลิงก์ว่าจะระบุชื่อเฟรมหรือไม่ เช่น: _TOP _NEW _PARENT
'รับการตั้งค่ารูปภาพและไฮเปอร์ลิงก์ที่จะแสดง - ตั้งค่าในไฟล์ AdrSet.txt
Response.เขียน adr.GetAdvertisement("AdrSet.txt")
-
เนื้อหาของ AdrSet.txt (ตามด้วยความคิดเห็น ไม่ใช่เนื้อหาของไฟล์นี้):
เปลี่ยนเส้นทาง wuf26.asp หลังจากคลิกโฆษณาแล้ว wuf26.asp จะดำเนินการประมวลผล
WIDTH 468 ความกว้างของรูปภาพโฆษณา
ความสูง 60 ความสูงของรูปภาพโฆษณา
* ตัวคั่น
http://www.163.com/ ชี้ไปที่ลิงก์ หากไม่มีไฮเปอร์ลิงก์ ให้เขียน "-"
คำอธิบายข้อความ NetEase
20 แสดงน้ำหนักสัมพัทธ์ของโฆษณา นั่นคือ ความถี่ในการแสดง
http://www.sina.com.cn/
sina.com
30
http://www.canon.com.cn/
แคนนอน
50
ในตัวอย่างนี้ มีรูปภาพสามรูป (ขนาดรูปภาพ 468X60) และลิงก์ คำอธิบายของแต่ละลิงก์มีสี่บรรทัด ในการใช้งานจริง คุณสามารถทำตามวิธีเดียวกันและเพิ่มรูปภาพเพิ่มเติมได้
<% 'wuf26.asp
URL = Request.QueryString("url")
การตอบสนองการเปลี่ยนเส้นทาง (URL)
%>
wuf26.asp เป็นโปรแกรมประมวลผลที่ง่ายที่สุด คุณสามารถเพิ่มโค้ดเพิ่มเติมได้ที่นี่ตามความต้องการที่แท้จริง
เรียกใช้และปรากฎว่าการใช้ส่วนประกอบนี้ง่ายมาก สิ่งที่คุณต้องทำคือรับไฟล์ AdrSet.txt ของคุณเอง การใช้ส่วนประกอบนี้ทำให้คุณสามารถออกแบบหน้าแรกของ Ad Exchange ที่กำลังอินเทรนด์ได้
4. องค์ประกอบการลิงก์เนื้อหา
แน่นอนว่าองค์ประกอบนี้เกี่ยวข้องกับลิงก์ หากคุณต้องการทราบการใช้งานเฉพาะขององค์ประกอบนี้ทันที ฉันเกรงว่ามันจะเร็วเกินไป คุณอาจจะอ้างอิงตัวอย่างคลาสสิกก่อน: สมมติว่าคุณกำลังอ่านก หนังสือบนอินเทอร์เน็ตคุณจะต้องไม่คุ้นเคยกับลิงค์ต่อไปนี้ จะไม่คุ้นเคย: บทที่ 1, บทที่ 2,..., บทที่แล้ว, บทที่ถัดไป (หรือหน้าก่อนหน้า, หน้าถัดไป) เป็นต้น สิ่งที่เราต้องทำตอนนี้คือวิธีตั้งค่าการข้ามระหว่างลิงก์เหล่านี้อย่างง่ายดายและรวดเร็ว
ขั้นแรกให้สร้างไฟล์ข้อความรายการลิงก์ เช่น urllist.txt
wuf23.asp: การทำงานของไฟล์ (ส่วนประกอบการเข้าถึงไฟล์)
wuf28.asp: ตัวอย่างการใช้งานส่วนประกอบการลิงก์เนื้อหา
wuf22.asp:
ที่อยู่ URL และคำอธิบายของลิงก์คอมโพเนนต์ความสามารถของเบราว์เซอร์จะถูกคั่นด้วยปุ่ม Tab wuf27.asp ต่อไปนี้ใช้เพื่อแสดงรายการลิงก์ทั้งหมดใน urllist.txt
<% @LANGUAGE = VBScript %>
<% ตัวเลือกที่ชัดเจน %>
<html><head><title>การใช้ส่วนประกอบการลิงก์เนื้อหา</title></head>
<ร่างกาย>
<h2>สารบัญ: โปรดทราบว่าลิงก์หลักคือบทที่ 2 คุณต้องคลิกลิงก์นั้น</h2>
<ul>
-
Dim NextLink เคานต์
'สร้างส่วนประกอบการเชื่อมโยงเนื้อหา
Set NextLink = Server.CreateObject("MSWC.NextLink")
'รับจำนวนลิงก์ในไฟล์ urllist.txt
Count = NextLink.GetListCount("urllist.txt")
Dim url, Dscr, I
สำหรับฉัน = 1 ที่จะนับ
url = NextLink.GetNthURL ("urllist.txt", I) 'รับไฮเปอร์ลิงก์
Dscr = NextLink.GetNthDescription ("urllist.txt", I) 'รับคำอธิบายข้อความ
การตอบสนองเขียน "<li><a href = """ & url & """>" & Dscr & "</a>" & vbcrlf
ต่อไป
-
</ul></body></html>
จากนั้น ยกตัวอย่าง wuf28.asp เพื่อแสดงวิธีข้ามไปยังบทก่อนหน้าและบทถัดไปโดยอัตโนมัติ
<% @LANGUAGE = VBScript %>
<% ตัวเลือกที่ชัดเจน %>
<html><head><title>โปรดดูลิงก์นี้</title></head>
<body>
<p>นี่คือข้อความของบทที่ 2...</p>
<% 'แต่ละไฟล์ประกอบด้วยประโยคต่อไปนี้เพื่อให้สามารถเชื่อมโยงอัตโนมัติ%>
<!--#include file="wuf29.asp"-->
</body></html>
เพิ่มประโยคสุดท้ายที่นี่เพื่อรับรู้ถึงการข้ามอัตโนมัติ แกนหลักอยู่ใน wuf29.asp
-
Dim NextLink อันดับ
ตั้งค่า NextLink = Server.CreateObject ("MSWC.NextLink")
'ลิงก์ปัจจุบันใน urllist.txt คืออะไร?
อันดับ = NextLink.GetListIndex ("urllist.txt")
Response.Write "<hr>"
ถ้า (อันดับ > 1) ดังนั้น 'rank = 1 ไม่มีหน้าก่อนหน้า
Response.Write "|<a href=""" & NextLink.GetPreviousURL("urllist.txt") & """>บทก่อนหน้า</a>|"
สิ้นสุด ถ้า
ถ้า (rank < NextLink.GetListCount("urllist.txt")) ดังนั้น 'rank อยู่ท้ายสุด แสดงว่าไม่มีหน้าถัดไป'
Response.Write "|<a href=""" & NextLink.GetNextURL("urllist.txt") & """>บทถัดไป</a>|"
สิ้นสุดถ้า
%>
หลังจากรันตัวอย่างนี้ คุณจะสามารถเข้าใจบทบาทของส่วนประกอบนี้อย่างแท้จริงได้ทันที กล่าวโดยย่อคือ ไม่จำเป็นต้องเขียน "บทก่อนหน้า" และ "บทถัดไป" ในแต่ละหน้า สามารถทำได้อย่างสมบูรณ์ผ่าน wuf29 .asp มันไม่สะดวกเหรอ? - มิฉะนั้นจะไม่ลำบากเกินไปหากคุณแก้ไขลิงก์ด้วยตนเอง
ตอนนี้คุณควรเข้าใจว่ามีเคาน์เตอร์ฟรี กระดานข้อความฟรี ห้องสนทนาฟรี เครือข่ายแลกเปลี่ยนโฆษณา ฯลฯ จำนวนมากบนอินเทอร์เน็ต หลักการของพวกเขาไม่มีอะไรมากไปกว่านี้ ดังนั้นจึงไม่จำเป็นต้องบูชาสิ่งเหล่านั้น