มีสองเงื่อนไขที่จำเป็นในการเรียนรู้ภาษาการเขียนโปรแกรมอย่างดี . เขียนประสบการณ์และประสบการณ์ของคุณเป็นประสบการณ์หรือบทเรียนและปรับแต่งในแอปพลิเคชันในอนาคตซึ่งจะช่วยปรับปรุงความเข้าใจของคุณเกี่ยวกับภาษาการเขียนโปรแกรมนี้อย่างแน่นอน ต่อไปนี้เป็นประสบการณ์สองประการในการเรียนรู้และการใช้โปรแกรม ASP ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน
ปฏิสัมพันธ์ระหว่าง VBScript และ JScript ในหน้า ASP
ASP มีความสามารถในการจัดการโปรแกรมการเขียนสคริปต์ในภาษาที่แตกต่างกันและสามารถเรียกเอ็นจิ้นสคริปต์ที่เหมาะสมโดยอัตโนมัติเพื่อตีความรหัสสคริปต์และดำเนินการฟังก์ชั่นในตัว สภาพแวดล้อมการพัฒนา ASP ให้สองเอ็นจิ้นสคริปต์คือ VBScript (ค่าเริ่มต้น) และ JScript อย่างไรก็ตามนักพัฒนาไม่ได้ จำกัด เฉพาะการใช้เพียงสองภาษานี้และสามารถใช้ภาษาสคริปต์ใด ๆ ตราบเท่าที่พวกเขาสามารถให้เครื่องมือสคริปต์ ActiveX ที่เหมาะสม
ทางเลือกของภาษาสคริปต์มักจะขึ้นอยู่กับเหตุผลที่แตกต่างกันมากมาย: อาจเป็นภาษาที่นักพัฒนาคุ้นเคยมากที่สุดอาจเป็นภาษาที่ให้การสนับสนุนที่โดดเด่นที่สุดสำหรับโครงการที่กำหนดหรืออาจเป็นภาษาที่มีประสิทธิภาพมากที่สุด สภาพแวดล้อมและข้อกำหนดที่แตกต่างกันทำให้เราให้ความสนใจกับปัจจัยที่แตกต่างกันเมื่อเลือกภาษาสคริปต์และในบางจุดเราประสบปัญหาที่ภาษาสคริปต์ที่เลือกไม่สามารถให้ฟังก์ชั่นโดยตรงในภาษาอื่น ๆ หรือสคริปต์ถูกเขียนขึ้น แต่ใช้ภาษาสคริปต์อื่น
ตอนนี้ฉันควรทำอย่างไร? คุณจำเป็นต้องเขียนสคริปต์เหล่านี้ใหม่ในภาษาสคริปต์ปัจจุบันหรือไม่? หรือเป็นไปได้ไหมที่จะเรียกฟังก์ชั่นในตัวของภาษาสคริปต์อื่น ๆ ในภาษาสคริปต์เดียว? สิ่งที่บทความนี้ต้องการอธิบายคือวิธีการโต้ตอบกับสคริปต์ VBScript และสคริปต์ JScript ในแอปพลิเคชัน ASP เพื่อเพิ่มการสนับสนุนพิเศษของสองภาษาสคริปต์
1. ฟังก์ชั่นในตัวสำหรับ VBScript และ JScript
ใน VBScript และ JScript มีฟังก์ชั่นในตัวจำนวนมากที่เหมือนกันหรือคล้ายกัน อย่างไรก็ตามฟังก์ชั่นที่สร้างขึ้นในภาษาสคริปต์หนึ่งไม่ได้มีฟังก์ชั่นที่สอดคล้องกันในภาษาสคริปต์อื่นเสมอไป ตัวอย่างเช่น VBScript มีฟังก์ชั่นมากมายสำหรับการจัดการสตริงและข้อมูลการจัดรูปแบบซึ่งไม่มีอยู่ใน JScript ฟังก์ชั่นเหล่านี้รวมถึง strreverse (), ตัวกรอง (), formatcurrency () ฯลฯ ในทางกลับกันฟังก์ชั่นที่จัดทำโดย JScript สำหรับการจัดการอาร์เรย์การเข้ารหัสสตริง ฯลฯ จะไม่ได้กำหนดไว้ใน VBScript เช่นเข้าร่วม (), ย้อนกลับ (), pow (), การดำเนินการบิต, escape () และ Unsescape () รอ.
ดังนั้นฉันควรทำอย่างไรถ้าฉันต้องการฟังก์ชั่น vbscript ในโปรแกรม JScript?
2. การโทรร่วมกันของสคริปต์ที่แตกต่างกัน
หากคุณต้องการเรียกใช้ฟังก์ชัน VBScript ในตัวในสคริปต์ JScript คุณควรเขียนฟังก์ชั่น VBScript ที่ผู้ใช้กำหนด (เรียกว่าฟังก์ชัน VBScript ในตัวที่นี่) จากนั้นเรียกใช้ฟังก์ชันที่ผู้ใช้กำหนดไว้ในสคริปต์ JScript เช่นเดียวกับการเรียกใช้ ฟังก์ชัน JScript สาธารณะ
ตัวอย่างเช่นหากฟังก์ชั่น VBScript ในตัวที่จะเรียกคือ FormatCurrency () คุณสามารถประกาศฟังก์ชั่นที่กำหนดเองต่อไปนี้:
<ภาษาสคริปต์ = vbscript runat = เซิร์ฟเวอร์>
Function FormatValue (ค่า)
formatValue = FormatCurrency (ค่า)
ฟังก์ชันสิ้นสุด
</script>
ถัดไปในรหัส JScript คุณสามารถเรียก FormatValue () เช่นฟังก์ชั่น JScript ทั่วไป รหัส VBScript เรียกใช้ฟังก์ชัน JScript สามารถนำไปใช้งานได้โดยใช้วิธีการที่คล้ายกัน
การใช้กฎเดียวกันเราสามารถเรียกฟังก์ชั่นที่ผู้ใช้กำหนดภายในสคริปต์ใด ๆ อย่างไรก็ตามเมื่อเรียกขั้นตอน VBScript (ย่อย) โดยไม่มีพารามิเตอร์จากสคริปต์ JScript คุณควรให้ความสนใจกับมัน ) กระบวนการ Foo
3. การแบ่งปันข้อมูล
มันมีประโยชน์มากในบางกรณีในการผสมฟังก์ชั่น VBScript และ JScript แต่ก็มีประโยชน์ในการแบ่งปันข้อมูลระหว่างสคริปต์ในภาษาต่าง ๆ วิธีการใช้งานการแบ่งปันนี้เป็นเรื่องง่าย: ไม่ว่าคุณจะใช้ภาษาใดตัวแปรที่ประกาศในระดับหน้าสามารถอ้างอิงได้โดยพลการ
วิธีการใช้งานของวัตถุก็คล้ายกัน แน่นอนคุณสมบัติและวิธีการของวัตถุที่กำหนดจะถูกกำหนดโดยภาษาที่สร้างอินสแตนซ์ของวัตถุนั้น เช่นเดียวกับในตัวอย่างข้างต้นการเรียกขั้นตอน VBScript เมื่อวิธีการของวัตถุ VBScript ที่ไม่มีพารามิเตอร์ถูกเรียกจาก JScript วิธีการเรียกของมันจะเป็นไปตามกฎการเรียก JScript และในทางกลับกัน
iv.
ปัญหาการแบ่งปันอาร์เรย์นั้นซับซ้อนกว่าเล็กน้อย แม้ว่าอาร์เรย์จะสามารถแชร์ระหว่างสคริปต์ในภาษาต่าง ๆ เช่นตัวแปรอื่น ๆ แต่ก็จำเป็นที่จะต้องให้ความสนใจกับปัญหาความเข้ากันได้
อาร์เรย์ VBScript สามารถอ้างอิงได้ด้วยสัญลักษณ์ VBScript ใน JScript นั่นคือหมายถึงองค์ประกอบอาร์เรย์ที่มี MyArray (2) แทนที่จะเป็นองค์ประกอบอาร์เรย์ของ JScript ที่อ้างอิงสัญลักษณ์ MyArray [2] นอกจากนี้คุณยังสามารถใช้วัตถุ JScript พิเศษ - วัตถุ Vbarray เพื่อแปลงอาร์เรย์ VBScript เป็นอาร์เรย์ JScript รหัสต่อไปนี้สร้างอาร์เรย์ jscript myjsarray จาก array vbscript myvbarray:
var temp = ใหม่ vbarray (myvbarray)
var myjsarray
myjsarray = temp.toarray ()
รหัสข้างต้นแรกสร้างวัตถุ Vbarray ชั่วคราวจากนั้นแปลงตัวเองเป็นอาร์เรย์ JScript โดยใช้วิธี TOARRAY () หลังจากนั้น MyJSarray สามารถใช้งานได้เช่นอาร์เรย์ JScript ทั่วไปเช่น MyJSarray [1] แต่ควรสังเกตว่าวิธี TOARRAY () จะแปลง VBARRAY หลายมิติเป็นอาร์เรย์ JScript หนึ่งมิติ
การอ้างถึงอาร์เรย์ JScript จาก VBScript นั้นซับซ้อนกว่า แม้ว่าใน VBScript เราสามารถเข้าถึงวิธีการและคุณสมบัติที่เกี่ยวข้องกับอาร์เรย์ JScript โดยตรง แต่ก็ไม่มีวิธีที่จะเข้าถึงองค์ประกอบเดียวของอาร์เรย์ JScript โดยตรง นั่นคือเราสามารถอ่านคุณสมบัติความยาวของอาร์เรย์ JScript ในสคริปต์ VBScript ดังนี้:
x = myjsarray.length
แต่องค์ประกอบเดียวของอาร์เรย์ไม่สามารถอ่านได้โดยตรงรหัส VBScript ต่อไปนี้ไม่ถูกต้อง:
x = myjsarray (3)
วิธีที่เป็นไปได้ในการแก้ปัญหานี้คือการดำเนินการแปลงตามที่แสดงในรหัสต่อไปนี้โดยที่ VBScript จะถือว่าเป็นภาษาสคริปต์เริ่มต้น:
-
อุณหภูมิหรี่
Dim Myvbarray
temp = myjsarray.join (,)
myvbarray = split (temp ,,)
-
เมธอด jscript () ที่นี่จะแปลงองค์ประกอบอาร์เรย์ myjsarray เป็นสตริงที่มีเครื่องหมายจุลภาคเป็นตัวแยกและฟังก์ชั่น vbscript split () แปลงสตริงเป็นอาร์เรย์ vbscript โปรดทราบว่าเรากำลังเรียกใช้วิธีการเข้าร่วมของ JScript ในสภาพแวดล้อม VBScript จากตัวอย่างนี้เราสามารถจำลองวิธี TOARRAY () ของวัตถุ VBARRAY ของ JScript ผ่านฟังก์ชั่น VBScript ที่กำหนดเองเพื่อใช้การแปลงอาร์เรย์ JScript เป็นอาร์เรย์ VBScript
สร้างหน้า ASP แบบไดนามิกด้วยเทมเพลต
เกี่ยวกับเทมเพลตฉันคิดว่าทุกคนอาจมีแนวคิดบางอย่าง นี่อาจเป็นความหมายของเทมเพลตที่นี่ ในความเป็นจริงยังมีฟังก์ชั่นเทมเพลตใน Dreamweaver แต่แบบคงที่สามารถเติมเต็มเนื้อหาได้ด้วยตนเองและนี่คือการเติมเนื้อหาอัตโนมัติแบบไดนามิก
ก่อนอื่นให้ฉันอธิบายว่าทำไมต้องใช้ไฟล์เทมเพลต บางครั้งเทมเพลตสามารถให้แนวคิดที่สมบูรณ์มากขึ้นเกี่ยวกับฟังก์ชั่นและเค้าโครงของหน้าเว็บ เมื่อคุณเห็นรูปแบบเทมเพลตของคำคุณจะรู้ว่าเค้าโครงสุดท้ายเป็นอย่างไรและสิ่งเดียวกันก็เป็นจริงที่นี่ ตัวอย่างเช่นคุณสามารถเก็บคำสั่ง ASP และใช้เทมเพลตที่แตกต่างกันเพื่อสร้างรูปแบบหน้าเว็บที่แตกต่างกัน ด้วยวิธีนี้คุณไม่จำเป็นต้องเขียนหน้า ASP ที่แตกต่างกันสำหรับแต่ละรูปแบบของหน้าเว็บที่แตกต่างกันซึ่งช่วยให้เราประหยัดเวลาและพลังงานได้มาก ยิ่งไปกว่านั้นไฟล์เทมเพลตสามารถทำให้คุณสามารถเรียกดูรหัสหน้าเว็บได้ง่ายขึ้นและคุณไม่ต้องกังวลเกี่ยวกับการผสมผสานของ ASP และ HTML ที่ทำให้คุณเวียนหัว คุณสามารถมุ่งเน้นไปที่ HTML โดยไม่ต้องกังวลเกี่ยวกับ ASP เลย อีกอย่างคือทัชแพดนั้นง่ายมากและคุณจะเข้าใจได้อย่างรวดเร็ว ในบทความนี้จะใช้ฐานข้อมูล - ตารางพนักงานที่ใช้กันอย่างแพร่หลาย รวมรหัสพนักงานชื่อภาพถ่ายรวมถึงสรุปงานและเชิงอรรถสำหรับภาพถ่าย นี่คือโครงสร้างของฐานข้อมูลการเข้าถึงนี้:
ชื่อไฟล์ - myDatabase.mdb
ชื่อตาราง - พนักงาน
รหัสประจำตัว
การนับอัตโนมัติ (Autonumber)
ชื่อเต็ม
ข้อความ - สูงสุด 100 อักขระ
picurl
ข้อความ - สูงสุด 255 อักขระ
หน้าที่
ประเภทความคิดเห็น
piccaption
ข้อความ - สูงสุด 50 อักขระ
ฐานข้อมูลที่ง่ายมากใช่มั้ย แน่นอนคุณสามารถขยายได้ตามต้องการและนั่นคือธุรกิจของคุณเอง ฉันคิดว่าคุณเข้าใจการดำเนินงานพื้นฐานของฐานข้อมูลอยู่แล้วดังนั้นฉันจึงไม่ต้องใช้ความพยายามมากเกินไป หลังจากสร้างฐานข้อมูลเราสามารถเริ่มสร้างไฟล์เทมเพลต ไฟล์นี้เป็นโครงกระดูกของแต่ละหน้า ฉันไม่ได้ใช้แบบฟอร์มนั่นเป็นปัญหาเล็กน้อยและฉันขี้เกียจ :-) และอย่าเพิ่มแท็กเพราะนั่นคือสิ่งที่จะเพิ่มลงในหน้า ASP ดังนั้นในที่สุดก็ดูเหมือนว่า:
ชื่อเต็ม:
% ชื่อ% <br> คำอธิบายหน้าที่:
ภาษี%%
ภาพนี้ถ่าย: %วันที่ %
ID พนักงาน: %empid %
แค่ไหน! นี่คือเทมเพลตที่เรียบง่าย บันทึกเป็น template.tmp และจะอ้างอิงในหน้า ASP ในต่อไปนี้ ควรสังเกตว่าเราสามารถเพิ่มแท็ก HTML ต่างๆในเทมเพลตได้ % ล้อมรอบ? นั่นคือสาระสำคัญของเทมเพลต บางทีคุณอาจสังเกตเห็นว่า % ถูกล้อมรอบด้วยความสอดคล้องกับความหมายของฟิลด์ในฐานข้อมูล ดูที่รหัส ASP ด้านล่างวิธีอ่านเทมเพลตและไฟล์ฐานข้อมูลนวดด้วยกันแล้วส่งออกหน้า HTML ที่เราต้องการ
นั่นคือรหัสทั้งหมดมันง่ายมากใช่มั้ย ทั้งหมดที่ทำคือการเปิดไฟล์เทมเพลตอ่านแต่ละบรรทัดตามลำดับจากนั้นแทนที่แท็ก % IMG % และ % แท็ก % ในเทมเพลตด้วยค่าฟิลด์จริงที่อ่านในฐานข้อมูล ยิ่งไปกว่านั้นมันตีความการส่งคืนกลับในข้อความขนาดใหญ่ในสนามหน้าที่เป็นคืนรถของ HTML
เพื่อไม่ให้รบกวนรูปแบบเค้าโครงทั้งหมด แล้วล่ะ? มันง่ายที่จะทำ เทมเพลตสามารถมีบทบาทที่น่าอัศจรรย์ในบางแอปพลิเคชันประหยัดเวลาและความพยายาม ในทางทฤษฎีคุณสามารถแก้ไขรหัสนี้และใช้ FileSystemObject เพื่ออ่านและเขียนข้อความเพื่อให้ข้อมูลไม่จำเป็นต้องเก็บไว้ในฐานข้อมูล ในบางแอปพลิเคชั่นเช่นข่าวประชาสัมพันธ์ทันทีนี้อาจสะดวกกว่า