แนะนำ: ทำให้หน้าต่างป๊อปอัพ "เชื่อฟัง" เล็กน้อย ป๊อปอัปจะปรากฏขึ้นเมื่อเข้าสู่เว็บไซต์บางแห่งในขณะที่ท่องอินเทอร์เน็ต อาจเป็นการทักทายจากเว็บมาสเตอร์ให้คุณหรืออาจเป็นการประกาศสำคัญของเว็บไซต์โฆษณาเว็บไซต์ ฯลฯ แต่ถ้าคุณใช้งานไม่ดีมันจะทำให้คนรู้สึกเบื่อ วิธีการทำให้ป๊อปอัปทำงานโดยไม่ส่งผลกระทบต่อการเรียกดู
เมื่อคุณเขียนแอปพลิเคชันฝั่งเซิร์ฟเวอร์โดยใช้ ASP คุณต้องพึ่งพาส่วนประกอบ ActiveX ไปยังฟังก์ชั่นเว็บแอปพลิเคชันที่ทรงพลังเช่น: คุณต้องเชื่อมต่อกับฐานข้อมูลทำงานฐานข้อมูลออนไลน์ ฯลฯ
1. ส่วนประกอบความสามารถของเบราว์เซอร์เป็นที่รู้จักกันดีและไม่ใช่ทุกเบราว์เซอร์ที่รองรับทุกด้านของเทคโนโลยีอินเทอร์เน็ตในปัจจุบัน มีคุณสมบัติบางอย่างที่เบราว์เซอร์บางตัวรองรับ แต่อื่น ๆ ไม่ได้เช่นการควบคุม ActiveX สตรีมรูปภาพ HTML แบบไดนามิกแฟลชและโปรแกรมสคริปต์ การใช้ส่วนประกอบความสามารถของเบราว์เซอร์ของ ASP คุณสามารถออกแบบหน้าเว็บอัจฉริยะเพื่อนำเสนอเนื้อหาในรูปแบบที่เหมาะสมกับประสิทธิภาพของเบราว์เซอร์ ส่วนประกอบความสามารถของเบราว์เซอร์สามารถสร้างวัตถุเบราว์เซอร์ไทป์ที่ให้สคริปต์ผู้ใช้พร้อมคำอธิบายการทำงานของเว็บเบราว์เซอร์ไคลเอนต์ เหตุผลที่ส่วนประกอบนี้สามารถระบุข้อมูลเช่นเวอร์ชันของเบราว์เซอร์ไคลเอ็นต์ส่วนใหญ่เป็นเพราะเมื่อเบราว์เซอร์ไคลเอนต์ส่งคำขอหน้าไปยังเซิร์ฟเวอร์มันจะส่งชื่อตัวแทนผู้ใช้ HTTP โดยอัตโนมัติซึ่งเป็นสตริง ASCII ที่ประกาศเบราว์เซอร์และเวอร์ชัน ส่วนประกอบความสามารถของเบราว์เซอร์แมปเอเจนต์ผู้ใช้กับเบราว์เซอร์ที่ระบุไว้ในไฟล์ browscap.ini และระบุเบราว์เซอร์ไคลเอนต์ผ่านคุณสมบัติของวัตถุเบราว์เซอร์ หากวัตถุไม่สามารถหารายการที่ตรงกับชื่อในไฟล์เบราว์เซอร์รีจะใช้คุณสมบัติเบราว์เซอร์เริ่มต้น หากวัตถุนั้นไม่พบการจับคู่และการตั้งค่าเบราว์เซอร์เริ่มต้นจะถูกระบุในไฟล์ browser.ini จะตั้งค่าแต่ละคุณสมบัติเป็นสตริงที่ไม่ทราบ โดยค่าเริ่มต้นไฟล์ browser.ini จะถูกเก็บไว้ใน windows //// system ///////onsrv (ถ้า 95/98 PWS4) หรือ nt //////////////////////////////////////////////////////////////////////Ily INERSRV (if NT) คุณสามารถแก้ไขไฟล์ข้อความนี้ด้วยตัวเองเพื่อเพิ่มคุณสมบัติของคุณเองหรือแก้ไขไฟล์ตามไฟล์อัปเดตเวอร์ชันเบราว์เซอร์ล่าสุดที่ปล่อยออกมา โปรดดูกระบวนการ CheckCookie () ต่อไปนี้ใช้แอตทริบิวต์คุกกี้ของวัตถุ BrowserCap เพื่อตรวจสอบว่าเบราว์เซอร์ไคลเอ็นต์รองรับคุกกี้และส่งคืนข้อมูลหรือไม่:
| ต่อไปนี้เป็นเนื้อหาที่ยกมา: - Sub Checkcookie () ตั้งค่า browsercap = server.createObject (mswc.browsertype) ถ้า browsercap.cookie = true แล้ว Response.write เบราว์เซอร์ของคุณรองรับคุกกี้! อื่น Response.write ขออภัยเบราว์เซอร์ที่คุณใช้ไม่รองรับคุกกี้! สิ้นสุดถ้า สิ้นสุดย่อย - |
2. ส่วนประกอบการเข้าถึงไฟล์หากคุณอายุมากพอในเครือข่ายคุณต้องเห็นสมุดเยี่ยม CGI ในยุคไดโนเสาร์ซึ่งเป็นต้นแบบต้นแบบแรกสุดของสมุดเยี่ยมเว็บ ในเวลานั้นมันยากมากที่จะเชื่อมต่อกับฐานข้อมูลแบ็กเอนด์เซิร์ฟเวอร์ในเว็บแอปพลิเคชันบนอินเทอร์เน็ตดังนั้นข้อมูลประวัติในสมุดเยี่ยมไม่ได้ถูกเก็บไว้ในฐานข้อมูลแบ็กเอนด์เหมือนในปัจจุบัน ข้อมูลเหล่านี้ถูกเก็บไว้ที่ไหน คำตอบคือไฟล์ข้อความ โปรแกรม CGI สามารถเขียนข้อมูลที่ได้รับจากไคลเอนต์ลงในไฟล์ข้อความที่เก็บไว้ในเซิร์ฟเวอร์ ไฟล์สามารถเป็นไฟล์ HTML หรือไฟล์ TXT ซึ่งอนุญาตให้โปรแกรมเมอร์บันทึกข้อมูลลูกค้าโดยไม่ต้องเชื่อมต่อกับฐานข้อมูลเดียวกัน อย่างไรก็ตามการเขียนโปรแกรม CGI ดังกล่าวยุ่งยากมาก รายการต่อไปนี้เป็นตัวอย่างที่ง่ายที่สุดของโปรแกรมดังกล่าว:
| ต่อไปนี้เป็นเนื้อหาที่ยกมา: #!/usr/local/bin/perl # perl ตำแหน่งหนึ่งเซิร์ฟเวอร์ของคุณ พิมพ์ Content-Type: ข้อความ/plain //////////////////////6-2; 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 {/// 'โทรศัพท์ ////'} พิมพ์ที่อยู่ไฟล์: $ form {/// 'ที่อยู่ ////'} //// n; พิมพ์ไฟล์ zip code: $ form {/// 'zip ///'} พิมพ์ที่อยู่อีเมลไฟล์: $ form {/// 'อีเมล ////'} ///// n; พิมพ์ไฟล์ส่งคืนความคิดเห็น: $ form {/// 'เนื้อหา ////'} ปิด (ไฟล์) |
คุณสามารถรู้สึกได้ว่าเมื่อเทียบกับ ASP โปรแกรม CGI ประเภทนี้แย่กว่าในการอ่านและการใช้งานได้ จากนั้นคุณต้องถามว่า ASP สามารถเขียนไฟล์ได้โดยตรงบนเซิร์ฟเวอร์หรือไม่? คำตอบคือแน่นอนใช่ แต่เพื่อนอัจฉริยะอาจคิดว่าเนื่องจากการเชื่อมต่อระหว่าง ASP และฐานข้อมูลเว็บนั้นสะดวกมากทำไมเราต้องเขียนข้อมูลลูกค้าในไฟล์ข้อความ ฟังก์ชั่นนี้ของ ASP ฟุ่มเฟือยใช่ไหม อันที่จริงสำหรับเว็บแอปพลิเคชันทั่วไปเช่นสมุดเยี่ยมและ BBS เราไม่สามารถแทนที่ฐานข้อมูลด้วยการเขียนไฟล์ข้อความในแง่ของประสิทธิภาพการดำเนินการของโปรแกรมหรือใช้งานง่าย อย่างไรก็ตามการเขียนไฟล์ข้อความในฟิลด์แอปพลิเคชันเว็บบางแห่งเป็นทั้งมาตรฐานและวิธีที่ค่อนข้างสะดวกเมื่อเทียบกับฐานข้อมูล หากคุณคุ้นเคยกับ NT คุณต้องรู้ว่า NT มีกลไกความปลอดภัยที่ทรงพลังมากซึ่งสามารถบันทึกการทำงานของเซิร์ฟเวอร์และข้อมูลการเชื่อมต่อได้เกือบทั้งหมดในไฟล์ที่มีชื่อต่อท้าย ในความเป็นจริงเทคโนโลยีนี้ยังสามารถใช้บนเว็บเพื่อบันทึกข้อมูลการเข้าสู่ระบบของลูกค้า โปรแกรมต่อไปนี้ใช้คุณสมบัติของการอ่านและการเขียนไฟล์ข้อความ ASP เพื่อสร้างฟังก์ชั่นที่บันทึกบันทึกคำพูดของผู้ใช้แต่ละรายการโดยอัตโนมัติในโปรแกรมเว็บ BBS
| ต่อไปนี้เป็นเนื้อหาที่ยกมา: - ตั้งค่า fs = createObject (scripting.filesystemobject) forreading = 1 /// 'เปิดไฟล์ในโหมดอ่านอย่างเดียว ไฟล์นี้ไม่สามารถเขียนได้ forappending = 8 /// 'เปิดไฟล์และเขียนในตอนท้ายของไฟล์ tristateusedefault = -2 tristatetrue = -1 tristateFalse = 0/p> - ServerMap = Server.mappath (/// bbs /// log ////)) /// 'ระบบการทำแผนที่เส้นทางกายภาพ Temp = ServerMap & //// & ปี (วันที่) & เดือน (วันที่) & /////////////// /// 'รับเส้นทางและเวลาทางกายภาพของระบบและใช้สิ่งนี้เป็นพา ธ ทางกายภาพที่เก็บไว้ในไฟล์บันทึก ถ้าไม่ใช่ fs.folderexists (temp) แล้ว Fs.CreateFolder (อุณหภูมิ) สิ้นสุดถ้า /// 'การตรวจจับการมีอยู่ของโฟลเดอร์มิฉะนั้นจะถูกสร้างขึ้นโดยอัตโนมัติ สลัว Tim Tempname TempName = วันที่ syslog = temp & tempname & .log /// 'ชื่อไฟล์คือ e: ////bbs//log///month////month.log li = ผู้ใช้ &&& ตอนนี้ && request.serverVariables (remote_addr) && tempfile &&& จดหมาย && ชื่อเรื่อง /// 'รูปแบบบันทึกไฟล์บันทึกคือ: ชื่อผู้ใช้และการส่งเวลาและผู้ใช้ IP & FILE PATH & FILE ASALE & LETTER TITLE ถ้า fs.fileexists (syslog) แล้ว ตั้งค่า ss = fs.opentextfile (syslog, forappending, true) อื่น SET SS = Fs.CreatetextFile (syslog, forwriting, false) สิ้นสุดถ้า /// 'ตรวจจับว่าไฟล์บันทึกมีอยู่หรือไม่ หากมีอยู่ให้เพิ่มเนื้อหาไฟล์มิฉะนั้นจะเขียนไฟล์โดยตรง Ss.Writeline (LI) Ss.close - - |
หากคุณไม่เข้าใจโปรแกรมข้างต้นอย่างเต็มที่โปรดฟังคำอธิบายของผู้เขียน ส่วนประกอบการเข้าถึงไฟล์มีวิธีการและคุณสมบัติที่สามารถใช้ในการเข้าถึงระบบไฟล์ของคอมพิวเตอร์ เราสามารถใช้องค์ประกอบการเข้าถึงไฟล์เพื่อสร้างวัตถุ FilesystemObject ประโยคแรกของโปรแกรมข้างต้นคือการใช้องค์ประกอบการเข้าถึงไฟล์เพื่อสร้างอินสแตนซ์วัตถุชื่อ FS หลังจากสร้างวัตถุแล้วคุณสามารถเข้าถึงไฟล์ได้ วัตถุไม่มีคุณสมบัติ ความหมายเพียงอย่างเดียวคือการสร้างเปิดหรืออ่านและเขียนไฟล์ข้อความ มีสองวิธีที่ใช้กันมากที่สุดสำหรับวัตถุ FilesystemObject หนึ่งวิธีที่ใช้ในการสร้างไฟล์และอีกวิธีหนึ่งที่ใช้ในการเปิดและอ่านและเขียนไฟล์ข้อความ วิธี createTextFile ได้รับชื่อไฟล์ที่คุณระบุและสร้างไฟล์ มันส่งคืนวัตถุ TextStream คุณสามารถใช้วัตถุนี้เพื่อใช้งานไฟล์หลังจากสร้างไฟล์ ไวยากรณ์ของวิธี createTextFile มีดังนี้:
ตั้งค่า objtextstream = filesystemobject.createtextfile (ชื่อไฟล์, [overwrite], [unicode])
ผู้เขียนจะอธิบายพารามิเตอร์ของวิธี createTextFile ด้านล่าง
1. ชื่อไฟล์สตริงที่มีชื่อพา ธ ไฟล์อาจเป็นชื่อพา ธ แบบเต็มของไฟล์รวมถึงชื่อไดรฟ์และชื่อไดเรกทอรีหรืออาจเป็นเพียงชื่อไฟล์ หากรวมชื่อไฟล์เท่านั้นไฟล์จะถูกสร้างขึ้นในไดเรกทอรีรูทของไซต์
2. เขียนทับปริมาณบูลีน เมื่อตั้งค่าเป็น FALSE มันสามารถป้องกันวัตถุ FilesySstemObject จากการลบไฟล์ที่มีอยู่เมื่อสร้างไฟล์ใหม่ พารามิเตอร์นี้เป็นทางเลือก หากระบบไม่มีค่าเริ่มต้นการกำหนดเป็นจริงไฟล์ที่มีอยู่ที่มีชื่อไฟล์เดียวกันจะถูกลบ
3. พารามิเตอร์ตัวเลือก Unicode ค่าบูลีนระบุว่าจะสร้างไฟล์ในรูปแบบไฟล์ Unicode หรือ ASCII ค่านี้เป็นจริงหากไฟล์ถูกสร้างขึ้นในรูปแบบไฟล์ Unicode และ FALSE หากไฟล์ถูกสร้างขึ้นในรูปแบบไฟล์ ASCII หากส่วนนี้ถูกละเว้นไฟล์ ASCII จะถูกสร้างขึ้น
ในโปรแกรมก่อนหน้านี้เราใช้ set ss = fs.createtextfile (syslog, forwriting, false) เพื่อสร้างไฟล์และเขียนไฟล์เมื่อไม่มีไฟล์บันทึก ที่นี่ forwriting หมายถึงการเขียนไฟล์
ซึ่งแตกต่างจากเมธอด createTextFile วิธี OpEnTextFile ใช้เพื่อรับชื่อไฟล์ที่คุณระบุและเปิดไฟล์ การใช้พารามิเตอร์ที่มีอยู่เราสามารถดำเนินการต่าง ๆ ในไฟล์ เช่นวิธี createTextFile วิธี opentExtFile ส่งคืนวัตถุ TextStream เพื่อให้คุณสามารถใช้งานไฟล์หลังจากเปิดไฟล์ ไวยากรณ์ของวิธี OpentExtFile มีดังนี้:
ตั้งค่า objtextstream = filesystemobject.opentextfile (ชื่อไฟล์, [iomode], [สร้าง], [รูปแบบ])
พารามิเตอร์มีดังนี้:
1. ชื่อไฟล์เป็นตัวแปรที่จำเป็นเหมือนกับชื่อไฟล์ของ createTextFile
2. ค่าคงที่ของ IOMODE โดยมีค่าเป็นหนึ่งในสองค่าคงที่ต่อไปนี้ forreading หรือ forappending หากโหมดคือ 1 ไฟล์จะเปิดอ่านอย่างเดียวและถ้าเป็น 8 ไฟล์จะถูกเปิดต่อท้าย
3. สร้างปริมาณบูลีนที่เป็นตัวเลือกโดยระบุว่าการดำเนินการใดทำหากไฟล์ที่คุณต้องการเปิดไม่มีอยู่ หากค่าของมันเป็นจริงไฟล์ที่ว่างเปล่าจะถูกสร้างขึ้นโดยอัตโนมัติเมื่อไม่มีไฟล์ หากเท็จข้อความแสดงข้อผิดพลาดจะถูกสร้างขึ้นเมื่อไม่พบไฟล์ ค่าเริ่มต้นเป็นเท็จ ขอแนะนำให้ตั้งค่าเป็นจริงเพื่อหลีกเลี่ยงการตรวจสอบข้อผิดพลาดเมื่อเปิดไฟล์
4. รูปแบบค่าตัวเลือกคุณสามารถเลือกค่า tristate สามค่าเพื่อระบุรูปแบบของไฟล์ตามลำดับ -2, -1 และ 0 สอดคล้องกับค่าเริ่มต้นของระบบ Unicode และ ASCII ตามลำดับ
หลังจากเปิดหรือสร้างไฟล์ข้อความคุณจะได้รับวัตถุ TextStream ซึ่งมีเคอร์เซอร์เช่นเดียวกับเคอร์เซอร์ในโปรเซสเซอร์ Word ซึ่งระบุว่าตัวละครที่คุณจะพิมพ์จะปรากฏขึ้นที่ไหนและยังระบุตำแหน่งของตัวละครที่คุณจะอ่าน คุณไม่สามารถสร้างวัตถุ TextStream ผ่าน creatoBject วิธีเดียวที่จะได้รับวัตถุ TextStream คือการใช้วัตถุ FileSystemObject เพื่อเปิดไฟล์ข้อความที่มีอยู่หรือสร้างไฟล์ใหม่ตามที่อธิบายไว้ก่อนหน้านี้
คุณสมบัติและวิธีการของวัตถุ TextStream แสดงอยู่ด้านล่าง
TextStream.atendofline ปริมาณบูลีนอ่านอย่างเดียวเมื่อเคอร์เซอร์อยู่ที่ส่วนท้ายของบรรทัดปัจจุบันค่าของมันเป็นจริงมิฉะนั้นจะเป็นเท็จ
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 ในความเป็นจริงไม่เพียง แต่สามารถเขียนไฟล์บันทึกบางอย่าง แต่ยังอัปเดตเว็บไซต์ของคุณโดยอัตโนมัติโดยไม่ต้องใช้ความพยายาม คุณเพียงแค่ต้องถ่ายโอนไฟล์ข้อความในรูปแบบคงที่ไปยังเซิร์ฟเวอร์ระยะไกลอ่านไฟล์ผ่านส่วนประกอบการเข้าถึงไฟล์และสร้างหน้า HTML ใหม่โดยอัตโนมัติโดยไม่ต้องทำงานหนักเพื่ออัปเดตไฟล์ HTML ทีละตัว หากคุณสนใจคุณสามารถใช้ส่วนประกอบการเข้าถึงไฟล์ของ ASP เพื่อเขียนเครื่องกำเนิด HTML อัตโนมัติของคุณเองอย่างเต็มที่เพื่อเพลิดเพลินกับความรู้สึกขั้นสูงและง่ายดายในการบำรุงรักษาเว็บไซต์
แบ่งปัน: JS Div จำลองโดเมนฟอร์มเลือก เมื่อเร็ว ๆ นี้ฉันกำลังทำงานในโครงการ AJAX ซึ่งใช้ล็อคหน้าจอจำลองจำนวนมากที่มีเลเยอร์หน้าจอเต็มรูปแบบ แต่มีอาการปวดหัวนั่นคือกล่องรายการแบบเลื่อนลงจะปรากฏบนเลเยอร์เสมอ ฉันเขียนคลาส JS นี้เพื่อแก้ปัญหานี้ โดยส่วนตัวแล้วฉันรู้สึกว่ามันใช้งานง่าย ฉันจะแบ่งปันกับคุณที่นี่