ASP มีความสามารถในการจัดการโปรแกรมสคริปต์ภาษาที่แตกต่างกัน สภาพแวดล้อมการพัฒนา ASP ให้สองเครื่องยนต์สคริปต์คือ VBScript และ JScript อย่างไรก็ตามนักพัฒนาไม่ได้ จำกัด เพียงสองภาษาตราบใดที่พวกเขาสามารถให้เอ็นจิ้นสคริปต์ ActiveX ที่เหมาะสมพวกเขาสามารถใช้ภาษาสคริปต์ใด ๆ
การเลือกภาษาสคริปต์มักจะขึ้นอยู่กับเหตุผลที่แตกต่างกันหลายประการ: อาจเป็นภาษาที่คุ้นเคยที่สุดของนักพัฒนามันอาจให้การสนับสนุนที่มีลักษณะเฉพาะมากที่สุดสำหรับโครงการที่กำหนดหรืออาจมีประสิทธิภาพมากที่สุด สภาพแวดล้อมและข้อกำหนดที่แตกต่างกันทำให้เราให้ความสนใจกับปัจจัยที่แตกต่างกันเมื่อเลือกภาษาสคริปต์ ภาษาสคริปต์
ฉันควรทำอย่างไรในเวลานี้? ฉันจำเป็นต้องเขียนสคริปต์เหล่านี้ใหม่ด้วยภาษาสคริปต์ปัจจุบันหรือไม่? กล่าวอีกนัยหนึ่งเป็นไปได้ไหมที่จะเรียกฟังก์ชั่นที่สร้างขึ้นของภาษาสคริปต์อื่น ๆ ในภาษาสคริปต์? บทความนี้อธิบายวิธีการอนุญาตให้สคริปต์ VBScript และ JScript สคริปต์โต้ตอบในแอปพลิเคชัน ASP เพื่อเพิ่มลักษณะของภาษาสคริปต์ทั้งสอง
1. ฟังก์ชั่นที่สร้างขึ้นของ VBScript และ JScript
ใน VBScript และ JScript ฟังก์ชั่นฟังก์ชั่นในตัวจำนวนมากจะเหมือนกันหรือคล้ายกัน อย่างไรก็ตามฟังก์ชั่นที่สร้างขึ้นในภาษาสคริปต์ไม่ได้เป็นฟังก์ชั่นที่สอดคล้องกันในภาษาสคริปต์อื่นเสมอไป ตัวอย่างเช่น VBScript มีฟังก์ชั่นมากมายสำหรับการใช้งานสตริงและข้อมูลการจัดรูปแบบซึ่งไม่มีอยู่ใน JScript ฟังก์ชั่นเหล่านี้รวมถึง strreverse (), ตัวกรอง () และ formatcurrency () ในทางกลับกันฟังก์ชั่นที่จัดทำโดย JScript สำหรับการจัดการอาร์เรย์การเข้ารหัสสตริง ฯลฯ จะไม่ได้กำหนดไว้ใน VBScript เช่นเข้าร่วม (), reverse (), pow (), การดำเนินการบิต, escape () และ Unescape () รอ.
ดังนั้นถ้าคุณต้องการฟังก์ชั่น vbscript ในโปรแกรม JScript
2. การโทรร่วมกันของสคริปต์ที่แตกต่างกัน
หากคุณต้องการเรียกฟังก์ชั่นในตัวในสคริปต์ VBScript ในสคริปต์ JScript คุณควรเขียนฟังก์ชั่นนิยามผู้ใช้ VBScript ฟังก์ชัน JScript ในสคริปต์ JScript
ตัวอย่างเช่นหาก VBScript Built -in ฟังก์ชั่นที่เรียกว่าคือ FormatCurrency () คุณสามารถประกาศฟังก์ชั่นที่กำหนดเองต่อไปนี้:
<ภาษาสคริปต์ = vbscript runat = เซิร์ฟเวอร์>
Function FormatValue (ค่า)
formatValue = FormatCurrency (ค่า)
ฟังก์ชันสิ้นสุด
</script>
ถัดไปคุณสามารถเรียก FormatValue () เช่นฟังก์ชั่น JScript ทั่วไปในรหัส JScript วิธีการที่คล้ายกันสามารถใช้เรียกฟังก์ชัน JScript ของรหัส VBScript
ใช้กฎเดียวกันเราสามารถเรียกฟังก์ชันนิยามผู้ใช้ในสคริปต์ใด ๆ อย่างไรก็ตามเมื่อเรียกกระบวนการ VBScript (ย่อย) โดยไม่มีพารามิเตอร์ (ย่อย) จากสคริปต์ JScript .
ประการที่สามการแบ่งปันข้อมูล
ภายใต้สถานการณ์บางอย่างการผสมการใช้ฟังก์ชัน VBScript และ JScript นั้นมีประโยชน์มาก แต่การแบ่งปันข้อมูลระหว่างสคริปต์ภาษาที่แตกต่างกันอาจมีประโยชน์เช่นกัน วิธีการใช้การแบ่งปันนี้ง่ายมาก: ไม่ว่าจะใช้ภาษาใดตราบใดที่ตัวแปรในคำสั่งระดับหน้าสามารถอ้างอิงได้โดยพลการ
วิธีการของวัตถุก็คล้ายกันและคุณสามารถใช้การอ่านภาษาที่เหมาะสมแก้ไขวิธีการของแอตทริบิวต์หรือเรียกวัตถุ แน่นอนคุณลักษณะและวิธีการของวัตถุที่กำหนดนั้นถูกกำหนดโดยภาษาของการสร้างอินสแตนซ์ของวัตถุ เช่นเดียวกับการเรียกกระบวนการของกระบวนการ VBScript ด้านบนเมื่อวิธีการเรียกวัตถุ VBScript ที่มีพารามิเตอร์ที่ไม่มีพารามิเตอร์เรียกจาก JScript วิธีการโทรยังตามกฎการโทรของ JScript และในทางกลับกัน
ประการที่สี่การจัดการอาร์เรย์
ปัญหาการแบ่งปันอาร์เรย์มีความซับซ้อนมากขึ้นเล็กน้อย แม้ว่าอาร์เรย์สามารถแชร์ได้ระหว่างสคริปต์ภาษาต่าง ๆ เช่นตัวแปรอื่น ๆ แต่เราต้องให้ความสนใจกับปัญหาที่เข้ากันได้
อาร์เรย์ VBScript สามารถอ้างอิงได้ด้วยสัญลักษณ์ของ VBScript ภายใต้ JScript นั่นคือองค์ประกอบอาร์เรย์ขององค์ประกอบอาร์เรย์แทนองค์ประกอบอ้างอิงอาร์เรย์ของ JScript สัญลักษณ์ MyArray [2] นอกจากนี้คุณสามารถใช้วัตถุ JScript พิเศษ -วัตถุ Vbarray เพื่อแปลงอาร์เรย์ VBScript เป็นอาร์เรย์ JScript รหัสต่อไปนี้สร้างอาร์เรย์ jscript myjsarray จาก array vbscript myvbarray:
VAR TEST = ใหม่ VBARRAY (MYVBARRAY)
var myjsarray
myjsarray = temp.toarray ()
รหัสข้างต้นแรกสร้างวัตถุ Vbarray ชั่วคราวจากนั้นใช้วิธี TOARRAY () เพื่อแปลงตัวเองเป็นอาร์เรย์ JScript ตั้งแต่นั้นมาฉันสามารถใช้ myjsarray เช่นอาร์เรย์ jscript ทั่วไปเช่น myjsarray [1] อย่างไรก็ตามควรสังเกตว่าวิธี TOARRAY () จะแปลง VBARAY แบบหลายมิติเป็นอาร์เรย์ JScript หนึ่งมิติ
อาร์เรย์ JScript มีความซับซ้อนมากขึ้นจาก VBScript แม้ว่าเราสามารถเข้าถึงวิธีการและแอตทริบิวต์ของอาร์เรย์ JScript โดยตรงใน VBScript แต่ก็ไม่มีวิธีการเข้าถึงองค์ประกอบเดียวของอาร์เรย์ JScript โดยตรง กล่าวอีกนัยหนึ่งเราสามารถอ่านแอตทริบิวต์ความยาวของอาร์เรย์ JScript ในสคริปต์ VBScript ดังที่แสดงด้านล่าง:
x = myjsarray.length
แต่มันเป็นไปไม่ได้ที่จะอ่านองค์ประกอบเดียวของอาร์เรย์โดยตรง
x = myjsarray (3)
วิธีที่เป็นไปได้ในการแก้ปัญหานี้คือการดำเนินการแปลง
-
อุณหภูมิหรี่
Dim Myvbarray
temp = myjsarray.join (,)
myvbarray = split (temp ,,)
-
เมธอด jscript () ที่นี่จะแปลงองค์ประกอบอาร์เรย์ myjsarray เป็นสตริงที่มีเครื่องหมายจุลภาคเป็นส่วนและฟังก์ชั่น vbscript split () แปลงสตริงเป็นอาร์เรย์ vbscript โปรดทราบว่าเราอยู่ที่นี่เป็นวิธีการเข้าร่วมของการเรียก JScript ภายใต้สภาพแวดล้อม VBScript จากตัวอย่างนี้เราสามารถจำลองวิธี TOARRAY () ของวัตถุ VBARRAY ของ JScript โดยฟังก์ชัน VBScript ที่กำหนดเองเพื่อใช้การแปลงจากอาร์เรย์ JScript ไปยังอาร์เรย์ VBScript
ห้าสรุป
การเลือกภาษาสคริปต์ที่แตกต่างกันในโครงการ ASP เดียวกันมีข้อได้เปรียบมากมาย สำหรับ VBScript หรือไลบรารีสคริปต์สากลที่สามารถใช้ในสภาพแวดล้อม JScript