VBScript و JScript (Cactus Studio · CPCW) في صفحة ASP
لدى ASP القدرة على إدارة برامج البرنامج النصي المختلفة. توفر بيئة تطوير ASP محركين نصين ، وهما VBScript و JScript. ومع ذلك ، لا يقتصر المطورون على لغتين فقط ، طالما أنه يمكنهم توفير محرك نصي مناسبة لـ ActiveX ، فيمكنهم استخدام أي لغة نصية.
غالبًا ما يعتمد اختيار لغة البرنامج النصي على العديد من الأسباب المختلفة: قد تكون اللغة الأكثر دراية للمطورين ، وقد توفر الدعم الأكثر مميزة لمشروع معين ، أو قد يكون الأكثر كفاءة. البيئات والمتطلبات المختلفة تجعلنا ينتبهون إلى عوامل مختلفة عند اختيار لغة البرنامج النصي لغة السيناريو.
ماذا علي أن أفعل في هذا الوقت؟ هل أحتاج إلى إعادة كتابة هذه البرامج النصية مع لغة البرنامج النصي الحالية؟ بمعنى آخر ، هل من الممكن استدعاء وظيفة لغة البرنامج النصي الأخرى بلغة نصية أخرى؟ تشرح هذه المقالة كيفية السماح لـ VBScript Script و JScript بالتفاعل في تطبيقات ASP لزيادة خصائص لغة البرنامج النصي.
1.
في VBScript و JScript ، هناك عدد كبير من وظائف الوظائف المدمجة في نفس أو ما شابه. ومع ذلك ، فإن الوظيفة المدمجة في لغة البرنامج النصي ليست دائمًا وظيفة مقابلة بلغة نصية أخرى. على سبيل المثال ، يوفر VBScript العديد من الوظائف لتشغيل سلسلة وبيانات التنسيق ، والتي لا توجد في JScript. وتشمل هذه الوظائف strreverse () و filter () و formatcurrency (). من ناحية أخرى ، لم يتم تعريف الوظائف التي توفرها JScript لإدارة الصفيف ، وترميز السلسلة ، وما إلى ذلك في VBScript ، مثل Join () ، reverse () ، pow () ، bit ، excart () ، و unescape () انتظر.
لذا ، ماذا لو كنت بحاجة إلى وظيفة vbscript في برنامج JScript؟
2. نداءات متبادلة من البرامج النصية غير المتجانسة
إذا كنت بحاجة إلى استدعاء وظيفة مدمجة في برنامج نصي VBScript في البرنامج النصي JScript ، فيجب عليك كتابة وظيفة تعريف مستخدم VBSCRIP وظيفة JScript في البرنامج النصي JScript.
على سبيل المثال ، إذا كانت الدالة المدمجة VBScript -In التي يتم استدعاؤها هي FormatCurrency () ، فيمكنك إعلان الوظيفة المخصصة التالية:
<script language = vbscript runat = server>
وظيفة FormatValue (القيمة)
FormatValue = formatcurrency (القيمة)
وظيفة نهاية
< /script>
بعد ذلك ، يمكنك استدعاء FormatValue () مثل وظيفة JScript العادية في رمز JScript. يمكن أيضًا استخدام طرق مماثلة للاتصال بوظيفة JScript لرمز VBScript.
تطبيق نفس القاعدة ، يمكننا الاتصال بأي وظيفة تعريف المستخدم في أي برنامج نصي. ومع ذلك ، عند الاتصال بعملية VBScript (Sub) بدون معلمات (Sub) من البرنامج النصي JScript. .
ثالثا ، مشاركة البيانات
في ظل ظروف معينة ، يعد خلط استخدام وظائف VBScript و JScript مفيدًا للغاية ، ولكن قد يكون مشاركة البيانات بين البرامج النصية اللغوية المختلفة مفيدة أيضًا. طريقة تنفيذ هذه المشاركة بسيطة للغاية: بغض النظر عن اللغة المستخدمة ، طالما أن المتغيرات الموجودة في بيان الصفحة -يمكن الرجوع إلى التعسفي.
تتشابه طريقة الكائن أيضًا ، ويمكنك استخدام قراءة اللغة المناسبة ، أو تعديل طريقة السمة أو استدعاء الكائن. بالطبع ، يتم تعريف سمات وطرق الكائن المحدد من خلال لغة إنشاء مثيل للكائن. مثلما تتم استدعاء عملية عملية VBScript أعلاه ، عندما يتم استدعاء طريقة استدعاء كائن VBScript مع معلمة بدون معلمات من JScript ، تتبع طريقة الاتصال أيضًا قواعد استدعاء JScript ، والعكس بالعكس.
الرابع ، إدارة الصفيف
مشكلة مشاركة الصفيف أكثر تعقيدًا قليلاً. على الرغم من أنه يمكن مشاركة الصفيف بين البرامج النصية اللغوية المختلفة مثل المتغيرات الأخرى ، يجب أن نولي اهتمامًا للقضايا المتوافقة.
يمكن الرجوع إلى صفيف VBScript برمز VBScript تحت JScript ، أي عنصر الصفيف لعناصر الصفيف بدلاً من رمز مرجع عناصر صفيف JScript [2] بالإضافة إلى ذلك ، يمكنك استخدام كائن JScript خاص -كائن Vbarray لتحويل صفيف VBScript إلى صفيف JScript. الرمز التالي ينشئ مجموعة JScript myjsarray من VBScript Array MyVbarray:
var test = vbarray new (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 = انقسام (مؤقت ،)
٪>
تقوم طريقة JScript Join () هنا بتحويل عنصر myjsarray المصفوفة إلى سلسلة مع فاصلة كقسم ، وتحول وظيفة VBScript SPLIT () السلسلة إلى صفيف VBSCRIP. لاحظ أننا هنا طريقة الانضمام لاتصال JScript ضمن بيئة VBScript. وفقًا لهذا المثال ، يمكننا محاكاة طريقة toarray () لكائن Vbarray الخاص بـ JScript عن طريق وظيفة VBScript المخصصة لتنفيذ التحويل من صفيف JScript إلى صفيف VBScript.
خمسة ، ملخص
إن الاختيار المرن اللغات البرمجية المختلفة في نفس مشروع ASP له العديد من المزايا. بالنسبة لمكتبات VBScript أو Universal Script التي يمكن استخدامها في بيئة JScript.