เมื่อคุณเขียนแอปพลิเคชันฝั่งเซิร์ฟเวอร์โดยใช้ ASP คุณต้องพึ่งพาส่วนประกอบ ActiveX ไปยังฟังก์ชั่นเว็บแอปพลิเคชันที่ทรงพลังเช่น: คุณต้องเชื่อมต่อกับฐานข้อมูลทำงานฐานข้อมูลออนไลน์ ฯลฯ
ในสองบทความก่อนหน้าผู้เขียนแนะนำวิธีการใช้งานของ rotator โฆษณาการเข้าถึงฐานข้อมูลและส่วนประกอบอื่น ๆ
1. ส่วนประกอบความสามารถของเบราว์เซอร์เป็นที่รู้จักกันดีและไม่ใช่ทุกเบราว์เซอร์ที่รองรับทุกด้านของเทคโนโลยีอินเทอร์เน็ตในปัจจุบัน มีคุณสมบัติบางอย่างที่เบราว์เซอร์บางตัวรองรับ แต่อื่น ๆ ไม่ได้เช่น: การควบคุม ActiveX, สตรีมรูปภาพ, HTML แบบไดนามิก, แฟลชและโปรแกรมสคริปต์ การใช้ส่วนประกอบความสามารถของเบราว์เซอร์ของ ASP คุณสามารถออกแบบหน้าเว็บอัจฉริยะเพื่อนำเสนอเนื้อหาในรูปแบบที่เหมาะสมกับประสิทธิภาพของเบราว์เซอร์ ส่วนประกอบความสามารถของเบราว์เซอร์สามารถสร้างวัตถุเบราว์เซอร์ไทป์ที่ให้สคริปต์ผู้ใช้พร้อมคำอธิบายการทำงานของเว็บเบราว์เซอร์ไคลเอนต์ เหตุผลที่ส่วนประกอบนี้สามารถรับรู้เวอร์ชันของเบราว์เซอร์ไคลเอนต์เป็นส่วนใหญ่เป็นเพราะเมื่อเบราว์เซอร์ไคลเอนต์ส่งคำขอหน้าไปยังเซิร์ฟเวอร์มันจะส่งชื่อตัวแทนผู้ใช้ http โดยอัตโนมัติซึ่งเป็นอักขระ ASCII ที่ประกาศเบราว์เซอร์และเวอร์ชันของมันโดยอัตโนมัติ . ส่วนประกอบความสามารถของเบราว์เซอร์แมปเอเจนต์ผู้ใช้กับเบราว์เซอร์ที่ระบุไว้ในไฟล์ Browscap.ini และระบุเบราว์เซอร์ไคลเอนต์ผ่านคุณสมบัติของวัตถุเบราว์เซอร์ หากวัตถุไม่สามารถหารายการที่ตรงกับชื่อในไฟล์เบราว์เซอร์รีจะใช้คุณสมบัติเบราว์เซอร์เริ่มต้น หากวัตถุนั้นไม่พบการจับคู่และการตั้งค่าเบราว์เซอร์เริ่มต้นจะถูกระบุในไฟล์ browser.ini จะตั้งค่าแต่ละคุณสมบัติเป็นสตริงที่ไม่ทราบ โดยค่าเริ่มต้นไฟล์ browser.ini จะถูกเก็บไว้ใน windows/system/inersrv (ถ้า 95/98+PWS4) หรือ NT/System32/Inersrv (ถ้า NT) ไดเรกทอรีคุณสามารถแก้ไขไฟล์ข้อความนี้ด้วยตัวคุณเองเพื่อเพิ่มการแก้ไขไฟล์โดย คุณลักษณะของตัวเองหรือขึ้นอยู่กับไฟล์อัปเดตเวอร์ชันเบราว์เซอร์ล่าสุดที่ปล่อยออกมา โปรดดูกระบวนการ CheckCookie () ต่อไปนี้ใช้แอตทริบิวต์คุกกี้ของวัตถุ BrowserCap เพื่อตรวจสอบว่าเบราว์เซอร์ไคลเอ็นต์รองรับคุกกี้และส่งคืนข้อมูลหรือไม่:
-
Sub Checkcookie ()
ตั้งค่า browsercap = server.createObject (mswc.browsertype)
ถ้า browsercap.cookie = true แล้ว
Response.write เบราว์เซอร์ของคุณรองรับคุกกี้!
อื่น
Response.write ขออภัยเบราว์เซอร์ที่คุณใช้ไม่รองรับคุกกี้!
สิ้นสุดถ้า
สิ้นสุดย่อย
-
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับส่วนประกอบความสามารถของเบราว์เซอร์ดูการออกแบบเว็บไซต์แบบไดนามิกสิบแปดศิลปะการต่อสู้-ASP (2)
2. ส่วนประกอบการเข้าถึงไฟล์หากคุณอายุมากพอในเครือข่ายคุณต้องเห็นสมุดเยี่ยม CGI ในยุคไดโนเสาร์ซึ่งเป็นต้นแบบต้นแบบแรกสุดของสมุดเยี่ยมเว็บ ในเวลานั้นมันยากมากที่จะเชื่อมต่อกับฐานข้อมูลแบ็กเอนด์เซิร์ฟเวอร์ในเว็บแอปพลิเคชันบนอินเทอร์เน็ตดังนั้นข้อมูลประวัติในสมุดเยี่ยมไม่ได้ถูกเก็บไว้ในฐานข้อมูลแบ็กเอนด์เหมือนในปัจจุบัน ข้อมูลเหล่านี้ถูกเก็บไว้ที่ไหน คำตอบคือไฟล์ข้อความ ข้อมูลลูกค้าสามารถบันทึกได้ แต่การเขียนโปรแกรม CGI นั้นยุ่งยากมาก
#!/usr/local/bin/perl
# perl ตำแหน่งหนึ่งเซิร์ฟเวอร์ของคุณ
พิมพ์ประเภทเนื้อหา: ข้อความ/ธรรมดา/n/n;
if ($ env {'request_method'} eqpost) {
อ่าน (stdin, $ buffer, $ env {'content_length'});
} elsif ($ env {'request_method'} eqget) {
$ buffer = $ env {'query_stirng'};
-
@pairs = split (/&/, $ buffer);
foreach $ pair (@pairs) {
($ name, $ value) = split (/=/, $ pair);
$ value = ~ tr/+//;
$ value = ~ S/%([AF AF 0-9] [AF AF 0-9])/Pack (C, hex ($ 1))/เช่น;
$ form {$ name} = $ value;}
$ file_name = guestbook.txt; #file ชื่อ
#เนื้อหาเฉพาะ
เปิด (ไฟล์, >> $ file_name) || ข้อผิดพลาดตายในการเปิดไฟล์;
พิมพ์เวลาบันทึกไฟล์: $ date /n /n;
พิมพ์ชื่อไฟล์: $ form {'ชื่อ'};
พิมพ์หน่วยไฟล์: $ form {'Company'}/n;
พิมพ์ไฟล์โทรศัพท์: $ form {'phone'}
พิมพ์ที่อยู่ไฟล์: $ form {'ที่อยู่'}/n;
พิมพ์ไฟล์ zip ไฟล์: $ form {'zip'}
พิมพ์ที่อยู่อีเมลไฟล์: $ form {'อีเมล'}/n;
พิมพ์ไฟล์ส่งคืนความคิดเห็น: $ form {'เนื้อหา'}
ปิด (ไฟล์)
คุณสามารถรู้สึกได้ว่าเมื่อเทียบกับ ASP โปรแกรม CGI ประเภทนี้แย่กว่าในการอ่านและการใช้งานได้ จากนั้นคุณต้องถามว่า ASP สามารถเขียนไฟล์ได้โดยตรงบนเซิร์ฟเวอร์หรือไม่? คำตอบคือแน่นอนใช่ แต่เพื่อนอัจฉริยะอาจคิดว่าเนื่องจากการเชื่อมต่อระหว่าง ASP และฐานข้อมูลเว็บนั้นสะดวกมากทำไมเราต้องเขียนข้อมูลลูกค้าในไฟล์ข้อความ อันที่จริงสำหรับเว็บแอปพลิเคชันทั่วไปเช่นสมุดเยี่ยมและ BBS เราไม่สามารถแทนที่ฐานข้อมูลด้วยการเขียนไฟล์ข้อความในแง่ของประสิทธิภาพการดำเนินการโปรแกรมหรือความสะดวกในการใช้งาน แต่ในเว็บแอปพลิเคชันบางรายการที่เขียนไฟล์ข้อความในฟิลด์เป็นทั้งมาตรฐานและ A วิธีที่ค่อนข้างสะดวกเมื่อเทียบกับฐานข้อมูล หากคุณคุ้นเคยกับ NT คุณต้องรู้ว่า NT มีกลไกความปลอดภัยที่ทรงพลังมากซึ่งสามารถบันทึกการทำงานของเซิร์ฟเวอร์และการเชื่อมต่อได้เกือบทั้งหมดในไฟล์ที่มีชื่อต่อท้าย สามารถใช้บนเว็บเพื่อบันทึกข้อมูลการเข้าสู่ระบบของลูกค้า โปรแกรมต่อไปนี้ใช้คุณสมบัติของการอ่านและการเขียนไฟล์ข้อความ ASP เพื่อสร้างฟังก์ชั่นที่บันทึกบันทึกคำพูดของผู้ใช้แต่ละรายการโดยอัตโนมัติในโปรแกรมเว็บ BBS
-
ตั้งค่า fs = createObject (scripting.filesystemobject)
forreading = 1
'เปิดไฟล์ในโหมดอ่านอย่างเดียว ไฟล์นี้ไม่สามารถเขียนได้
forappending = 8
'เปิดไฟล์และเขียนในตอนท้ายของไฟล์
tristateusedefault = -2
tristatetrue = -1
tristateFalse = 0
-
ServerMap = Server.mappath (/bbs/log/)
'ระบบการทำแผนที่เส้นทางกายภาพ
Temp = ServerMap &/& ปี (วันที่) & เดือน (วันที่) &//
'รับเส้นทางทางกายภาพและเวลาของระบบและใช้สิ่งนี้เป็นพา ธ ทางกายภาพที่เก็บไว้ในไฟล์บันทึก
ถ้าไม่ใช่ fs.folderexists (temp) แล้ว
Fs.CreateFolder (อุณหภูมิ)
สิ้นสุดถ้า
'ตรวจสอบว่ามีโฟลเดอร์อยู่หรือไม่ไม่เช่นนั้นจะถูกสร้างขึ้นโดยอัตโนมัติ
สลัว
Tim Tempname
TempName = วันที่
syslog = temp & tempname & .log
'ชื่อไฟล์คือ e:/bbs/log/month/month day.log
li = ผู้ใช้ &&& ตอนนี้ && request.serverVariables (remote_addr) && tempfile &&& จดหมาย && ชื่อเรื่อง
'รูปแบบบันทึกไฟล์บันทึกคือ: ชื่อผู้ใช้และการส่งเวลาและผู้ใช้ IP & FILE PATH & FILE PATH & MESSALE ARAEL & TITE TITLE
ถ้า fs.fileexists (syslog) แล้ว
ตั้งค่า ss = fs.opentextfile (syslog, forappending, true)
อื่น
SET SS = Fs.CreatetextFile (syslog, forwriting, false)
สิ้นสุดถ้า
'ตรวจสอบว่ามีไฟล์บันทึกอยู่หรือไม่
ss.writeline (l
ฉัน)
Ss.close
-
-
หากคุณไม่เข้าใจโปรแกรมข้างต้นอย่างเต็มที่โปรดฟังคำแนะนำของผู้เขียน ส่วนประกอบการเข้าถึงไฟล์มีวิธีการและคุณสมบัติที่สามารถใช้ในการเข้าถึงระบบไฟล์ของคอมพิวเตอร์ เราสามารถใช้องค์ประกอบการเข้าถึงไฟล์เพื่อสร้างวัตถุ FilesystemObject หลังจากสร้างวัตถุแล้วคุณสามารถเข้าถึงไฟล์ได้ มีสองวิธีที่ใช้กันมากที่สุดสำหรับวัตถุ FilesystemObject หนึ่งวิธีที่ใช้ในการสร้างไฟล์และอีกวิธีหนึ่งที่ใช้ในการเปิดและอ่านและเขียนไฟล์ข้อความ เมธอด CreateTextFile ได้รับชื่อไฟล์ที่คุณระบุและสร้างไฟล์
ตั้งค่า objtextstream = filesystemobject.createtextfile (ชื่อไฟล์, [overwrite], [unicode])
ผู้เขียนจะอธิบายพารามิเตอร์ของวิธี createTextFile ด้านล่าง
1. ชื่อไฟล์สตริงที่มีชื่อพา ธ อาจเป็นชื่อพา ธ แบบเต็มของไฟล์รวมถึงชื่อไดรฟ์และชื่อไดเรกทอรีหรืออาจเป็นเพียงชื่อไฟล์ ในไดเรกทอรีรากของไซต์
2. การเขียนทับปริมาณบูลีน ชื่อจะถูกลบ
3. พารามิเตอร์ตัวเลือก Unicode ค่าบูลีนระบุว่าจะสร้างไฟล์ในรูปแบบไฟล์ Unicode หรือ ASCII ค่านี้เป็นจริงหากไฟล์ถูกสร้างขึ้นในรูปแบบไฟล์ Unicode และ FALSE หากไฟล์ถูกสร้างขึ้นในรูปแบบไฟล์ ASCII หากส่วนนี้ถูกละเว้นไฟล์ ASCII จะถูกสร้างขึ้น
ในโปรแกรมก่อนหน้านี้เราใช้ set ss = fs.createtextfile (syslog, forwriting, false) เพื่อสร้างไฟล์และเขียนไฟล์เมื่อไม่มีไฟล์บันทึก
ซึ่งแตกต่างจากวิธี createTextFile วิธี OpEntextFile ใช้เพื่อรับชื่อไฟล์ที่คุณระบุและเปิดไฟล์ เพื่อให้คุณสามารถใช้งานไฟล์หลังจากเปิดออก ไวยากรณ์ของวิธี OpentExtFile มีดังนี้:
ตั้งค่า objtextstream = filesystemobject.opentextfile (ชื่อไฟล์, [iomode], [สร้าง], [รูปแบบ])
พารามิเตอร์มีดังนี้:
1. ชื่อไฟล์เป็นตัวแปรที่จำเป็นเหมือนกับชื่อไฟล์ของ createTextFile
2. ค่าคงที่ของ IOMODE โดยมีค่าเป็นหนึ่งในสองค่าคงที่ต่อไปนี้ forreckering หรือ forappending
3. สร้างปริมาณบูลีนที่เป็นตัวเลือกโดยระบุว่าการดำเนินการใดที่ทำหากไฟล์ที่คุณต้องการเปิดไม่มีอยู่ หากไม่พบข้อความแสดงข้อผิดพลาดเมื่อไม่พบไฟล์
4. ค่าตัวเลือกคุณสามารถเลือกค่า tristate สามค่าเพื่อระบุรูปแบบของไฟล์ตามลำดับ
หลังจากเปิดหรือสร้างไฟล์ข้อความคุณจะได้รับวัตถุ TextStream ซึ่งมีเคอร์เซอร์เช่นเคอร์เซอร์ในโปรแกรมการประมวลผลคำซึ่งระบุว่าตัวละครจะพิมพ์ได้ที่ไหนและยังระบุตำแหน่งของตัวละครที่คุณต้องการ เพื่ออ่าน คุณไม่สามารถสร้างวัตถุ TextStream ผ่าน creatoBject
คุณสมบัติและวิธีการของวัตถุ TextStream แสดงอยู่ด้านล่าง
textstream.a
ปริมาณบูลีนแบบอ่านอย่างเดียวที่มีการอ่านอย่างเดียวเมื่อเคอร์เซอร์อยู่ที่ส่วนท้ายของบรรทัดปัจจุบันค่าของมันเป็นจริงมิฉะนั้นจะเป็นเท็จ
TextStream.atendofstream ปริมาณบูลีนอ่านอย่างเดียวหากเคอร์เซอร์อยู่ที่ส่วนท้ายของสตรีมค่าของมันจะเป็นจริงมิฉะนั้นจะเป็นเท็จ
TextStream.Column จำนวนเต็มอ่านอย่างเดียวนับจำนวนอักขระจากจุดเริ่มต้นของบรรทัดไปยังตำแหน่งเคอร์เซอร์ปัจจุบัน
textStream.line จำนวนเต็มอ่านอย่างเดียวระบุหมายเลขบรรทัดของบรรทัดเคอร์เซอร์ในไฟล์ทั้งหมด
textStream.close () ปิดสตรีมและไฟล์ข้อความที่เกี่ยวข้อง
TextStream.read (NUM) ระบุว่ามีการอ่านอักขระจำนวนหนึ่งจากไฟล์ข้อความที่เริ่มต้นจากตำแหน่งปัจจุบันของเคอร์เซอร์
textStream.readall () อ่านสตรีมทั้งหมดเป็นสตริง
textStream.readline () อ่านอักขระทั้งหมดเป็นสตริง
textStream.write (ข้อความ) เขียนสตริงไปยังสตรีม
textStream.writeLine () เขียนสตริงข้อความไปยังสตรีม
textStream.skip (NUM) ในสตรีมย้ายตำแหน่งเคอร์เซอร์ตามจำนวนความยาวสตริงจำนวนหนึ่ง
TextStream.skiplines () ในสตรีมย้ายเคอร์เซอร์ไปยังแถวจำนวนหนึ่ง
TextStream.writeBlank เขียนจำนวนบรรทัดที่ว่างเปล่าไปยังสตรีมจำนวนหนึ่ง
เส้น (NUM)
ฉันเชื่อว่าทุกคนสามารถรู้สึกถึงฟังก์ชั่นที่ทรงพลังของส่วนประกอบ ASP File Access ในเซิร์ฟเวอร์ระยะไกลอ่านไฟล์ผ่านส่วนประกอบการเข้าถึงไฟล์และสร้างหน้า HTML ใหม่โดยอัตโนมัติโดยไม่ต้องทำงานอย่างหนักเพื่ออัปเดตไฟล์ HTML ทีละตัว หากคุณสนใจคุณสามารถใช้ส่วนประกอบการเข้าถึงไฟล์ของ ASP เพื่อเขียนเครื่องกำเนิด HTML อัตโนมัติของคุณเองอย่างเต็มที่เพื่อเพลิดเพลินกับความรู้สึกขั้นสูงและง่ายดายในการบำรุงรักษาเว็บไซต์