هناك شروط ضرورية لتعلم لغة البرمجة بشكل جيد. . فيما يلي تجربتان في التعلم واستخدام برمجة ASP ، آمل أن يكون ذلك مفيدًا للجميع.
التفاعل بين VBScript و JScript في صفحة ASP
يتمتع ASP بالقدرة على إدارة برامج البرمجة النصية بلغات مختلفة ويمكنه تلقائيًا استدعاء محركات البرمجة النصية المناسبة لتفسير رمز البرنامج النصي وتنفيذ وظائف مدمجة. توفر بيئة تطوير ASP محركين برمجة ، وهما VBScript (افتراضي) و JScript. ومع ذلك ، لا يقتصر المطورون على استخدام هاتين اللغتين فقط ، ويمكنهم استخدام أي لغة نصية طالما أنها يمكن أن توفر محرك البرمجة النصية ActiveX المناسب.
غالبًا ما يعتمد اختيار لغة البرمجة النصية على العديد من الأسباب المختلفة: من المحتمل أن تكون اللغة التي يكون المطورون أكثر دراية بها ، وربما تلك التي توفر الدعم الأكثر مميزًا لمشروع معين ، أو ربما اللغة الأكثر كفاءة. إن البيئات والمتطلبات المختلفة تجعلنا ينتبهون إلى عوامل مختلفة عند اختيار لغات البرمجة النصية ، وفي مرحلة ما نواجه المشكلة التي لا يمكن أن توفر لغة البرمجة النصية المحددة وظائف بشكل مباشر بلغات أخرى ، أو تم كتابة برنامج نصي ولكنه يستخدم لغة نصية أخرى.
ماذا علي أن أفعل الآن؟ هل تحتاج إلى إعادة كتابة هذه البرامج النصية في لغة البرنامج النصي الحالية؟ أم أنه من الممكن استدعاء وظائف مدمجة للغات البرمجية الأخرى بلغة نصية واحدة؟ ما تريده هذه المقالة أن تشرح هو كيفية التفاعل مع البرامج النصية VBScript و JScript البرامج النصية في تطبيقات ASP لزيادة الدعم الخاص للغات البرمجيتين.
1. وظائف مدمجة لـ VBScript و JScript
في VBScript و JScript ، هناك عدد كبير من الوظائف المدمجة المتشابهة أو ما شابه. ومع ذلك ، فإن الوظائف المدمجة في لغة نصية واحدة لا تحتوي دائمًا على وظائف مقابلة بلغة نصية أخرى. على سبيل المثال ، يوفر VBScript العديد من الوظائف لمعالجة السلاسل وبيانات التنسيق ، والتي لا توجد في JScript. وتشمل هذه الوظائف streverse () ، filter () ، formatcurrency () ، إلخ. من ناحية أخرى ، لم يتم تعريف الوظائف التي توفرها JScript لإدارة المصفوفات ، وترميز السلسلة ، وما إلى ذلك في VBScript ، مثل Join () ، reverse () ، pow () ، عمليات البت ، الهروب () و unescape (). انتظر.
لذا ، ماذا علي أن أفعل إذا كنت بحاجة إلى وظيفة vbscript في برنامج JScript؟
2. نداءات متبادلة من البرامج النصية غير المتجانسة
إذا كنت بحاجة إلى الاتصال بوظيفة VBSCRIPT مدمجة في برنامج نصي JSCRIPT ، فيجب عليك كتابة وظيفة معرفة من قبل المستخدم VBSCREMPL وظيفة JScript العامة.
على سبيل المثال ، إذا كانت الدالة المدمجة في VBScript التي سيتم استدعاؤها هي FormatCurrency () ، فيمكنك إعلان الوظيفة المخصصة التالية:
<script language = vbscript runat = server>
وظيفة FormatValue (القيمة)
FormatValue = formatcurrency (القيمة)
وظيفة نهاية
< /script>
بعد ذلك ، في رمز JScript ، يمكنك استدعاء FormatValue () مثل وظائف JScript العادية. يمكن أيضًا تنفيذ وظائف VBScript Code Conducts jscript باستخدام طريقة مماثلة.
بتطبيق نفس القواعد ، يمكننا استدعاء أي وظيفة محددة من قبل المستخدم داخل أي برنامج نصي. ومع ذلك ، عند استدعاء إجراء VBScript (Sub) بدون معلمات من برنامج نصي JScript ، يجب عليك الانتباه إليه. ) عملية فو.
3. مشاركة البيانات
من المفيد للغاية في بعض الحالات مزج وظائف VBScript و JScript ، ولكن قد يكون من المفيد أيضًا مشاركة البيانات بين البرامج النصية بلغات مختلفة. طريقة تنفيذ هذه المشاركة بسيطة: بغض النظر عن اللغة التي تستخدمها ، يمكن الرجوع إلى المتغيرات المعلنة على مستوى الصفحة بشكل تعسفي.
تتشابه طرق استخدام الكائنات أيضًا. بالطبع ، يتم تعريف خصائص وطرق كائن معين من خلال اللغة التي أنشأت مثيل هذا الكائن. كما هو الحال في مثال أعلاه ، فإن استدعاء إجراءات VBSCript ، عندما يتم استدعاء طريقة لكائن VBScript بدون معلمات من JScript ، تتبع طريقة الاتصال الخاصة به أيضًا قواعد استدعاء JScript ، والعكس بالعكس.
رابعا
مشكلة مشاركة الصفيف أكثر تعقيدًا. على الرغم من أنه يمكن أيضًا مشاركة المصفوفات بين البرامج النصية بلغات مختلفة مثل المتغيرات الأخرى ، إلا أنه من الضروري الانتباه إلى مشكلات التوافق.
يمكن الرجوع إلى صفائف VBScript مع رموز VBScript في JScript ، أي ، في إشارة إلى عناصر الصفيف مع Myarray (2) بدلاً من عناصر صفيف JScript التي تشير إلى الرمز MyArray [2]. بالإضافة إلى ذلك ، يمكنك أيضًا استخدام كائن Jscript خاص - Vbarray كائن لتحويل صفائف VBScript إلى صفائف JScript. الرمز التالي ينشئ مجموعة JScript myjsarray من VBScript Array MyVbarray:
var temp = vbarray new (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 = انقسام (درجة الحرارة ، ،)
٪>
تقوم طريقة JScript Join () هنا بتحويل عنصر myjsarray المصفوفة إلى سلسلة مع فاصلة كخارق ، وتحول وظيفة VBScript SPLIT () السلسلة إلى صفيف VBSCRIP. لاحظ أننا ندعو طريقة الانضمام إلى JScript في بيئة VBScript. وفقًا لهذا المثال ، يمكننا محاكاة طريقة toarray () لكائن Vbarray الخاص بـ JScript من خلال وظائف VBScript المخصصة لتنفيذ تحويل مجموعة JScript إلى VBScript.
قم بإنشاء صفحات ASP ديناميكية مع قوالب
فيما يتعلق بالقوالب ، أعتقد أن كل شخص قد يكون لديه بعض المفاهيم. ربما يكون هذا هو معنى القالب هنا. في الواقع ، هناك أيضًا وظيفة قالب في Dreamweaver ، ولكن لا يمكن للثابت ملء المحتوى يدويًا ، وهنا يتعلق بملء المحتوى التلقائي الديناميكي.
أولاً ، اسمحوا لي أن أشرح لماذا يتم استخدام ملف القالب. في بعض الأحيان ، يمكن أن تمنحك القوالب مفهومًا أكثر اكتمالًا لوظائف صفحة الويب والتخطيط. عندما ترى تنسيق القالب للكلمة ، ستعرف كيف يبدو التصميم النهائي ، والشيء نفسه صحيح هنا. على سبيل المثال ، يمكنك الحفاظ على عبارات ASP واستخدام قوالب مختلفة لإنشاء أنماط صفحات مختلفة. وبهذه الطريقة ، لا يتعين عليك كتابة صفحات ASP مختلفة لكل نمط مختلف من صفحة الويب ، مما يوفر لنا الكثير من الوقت والطاقة. علاوة على ذلك ، يمكن أن تجعل ملفات القوالب من السهل عليك تصفح رموز الصفحات ، ولا داعي للقلق بشأن مزيج ASP و HTML الذي يجعلك بالدوار. يمكنك فقط التركيز على HTML دون الحاجة إلى القلق بشأن ASP على الإطلاق. شيء آخر هو أن لوحة اللمس بسيطة للغاية وسوف تفهمها بالتأكيد بسرعة. في هذه المقالة ، سيتم استخدام قاعدة بيانات - جدول موظف يستخدم على نطاق واسع. يتضمن معرف الموظف ، والاسم ، والصورة ، وكذلك ملخص الوظائف والحواشي للصور. فيما يلي هيكل قاعدة بيانات الوصول هذه:
اسم الملف - myDatabase.mdb
اسم الجدول - الموظفين
بطاقة تعريف
العد التلقائي (أوتدوم)
fullname
النص - ما يصل إلى 100 حرف
بيكورل
نص - ما يصل إلى 255 حرفًا
واجبات
نوع التعليق
piccaption
النص - ما يصل إلى 50 حرفًا
قاعدة بيانات بسيطة للغاية ، أليس كذلك؟ بالطبع يمكنك توسيعه كما هو مطلوب ، وهذا هو عملك الخاص. أفترض أنك تفهم بالفعل العمليات الأساسية لقاعدة البيانات ، لذلك لا يتعين علي أن أقضي الكثير من الجهد. بعد إنشاء قاعدة البيانات ، يمكننا البدء في إنشاء ملف القالب. هذا الملف هو الهيكل العظمي لكل صفحة. لم أستخدم النموذج ، كان ذلك مزعجًا بعض الشيء ، وكنت كسولًا :-) ، ولا أضيف ، علامات ، لأن هذا ما يجب إضافته إلى صفحة ASP. لذلك في النهاية ، يبدو هكذا:
الاسم الكامل:
٪ name ٪ <br> وصف الواجبات:
٪ واجبات ٪
تم التقاط هذه الصورة: ٪ تاريخ ٪
معرف الموظف: ٪ Empid ٪
هذا كل شيء! هذا قالب بسيط. احفظه كـ Template.tmp وسيشير إليه في صفحة ASP في ما يلي. تجدر الإشارة إلى أنه يمكننا إضافة علامات HTML المختلفة إلى القالب. ٪ محاط؟ هذا هو جوهر القالب. ربما لاحظت أن هذه ٪ محاطون بالمعنى الخاص بالحقل في قاعدة البيانات. ألقِ نظرة على رمز ASP أدناه ، وكيفية قراءة ملفات القالب وقاعدة البيانات ، واعجنها معًا ، ثم إخراج صفحة HTML التي نريدها.
هذا هو كل الرمز ، إنه بسيط للغاية ، أليس كذلك؟ كل ما تفعله هو فتح ملف القالب ، وقراءة كل سطر بالترتيب ، ثم استبدال علامات ٪ IMG ٪ و ٪ name ٪ في القالب مع قيم الحقل الفعلي في قاعدة البيانات. علاوة على ذلك ، فإنه يفسر عودة النقل في قطعة كبيرة من النص في مجال الواجبات حيث عودة عربة HTML
، حتى لا تعطل تنسيق التصميم بأكمله. ماذا عن ذلك؟ من السهل القيام بذلك. يمكن أن يلعب القالب حقًا دورًا معجزة في بعض التطبيقات ، وتوفير الوقت والجهد. من الناحية النظرية ، يمكنك أيضًا تعديل هذا الرمز واستخدام نظام ملفات FileSystemObject لقراءة النص وكتابته ، بحيث لا يجب تخزين البيانات في قاعدة البيانات. في بعض التطبيقات ، مثل النشرات الإخبارية الفورية ، قد يكون هذا أكثر ملاءمة.