مدونة المؤلف: http://blog.csdn.net/oyiboy/
السبب في أنني ما زلت أدافع عن استخدام MVC لتطوير ASP هو فقط تحويل طريقة التفكير الموجهة للعملية إلى طريقة تفكير موجهة نحو الكائن ، وهو أمر مفيد للمطورين من أي لغة.
MVC هو نموذج قياسي. يبدو أنه من الصعب حقًا تطبيق ASP ، ولكن المعيار هو المعيار ، والتطبيق هو التطبيق. نظرًا لأنه من الصعب على ASP تنفيذ هذا النموذج ، يمكنك محاولة تحويل نموذج MVC إلى نموذج يناسبك.
"بغض النظر عن القط الأبيض ، يمكن للقط السوداء التقاط الماوس ، إنها قطة جيدة." بالنسبة لنا المطورين ، بغض النظر عن النموذج الذي هو عليه ، يمكنه توجيه تفكيرنا بشكل صحيح ، ونموذج يكمل بشكل مثالي المشروع هو نموذج جيد. بعد كل شيء ، ينتهي المستخدمون باستخدام برنامجنا بدلاً من نموذجنا.
خلال هذه الفترة ، لأنني كنت على اتصال مع MVC ، عرفت أيضًا كيفية استخدام الفصل وواجهت تصميم الأحداث.
في الواقع ، لا أفهم طريقة تصميم الأحداث المحددة جيدًا. أخبرني Newskyline في QQ أن ASP لا يمكنه القيام بفعاليات الفصل.
يمكن إجراء المحاكاة فقط. وماذا عني. يعتبر وسيلة لتحقيق الهدف (كتابة البرنامج). يعتبر أن المحاكاة جيدة أم لا ، طالما أن التأثير الذي أريده جيد.
هناك طريقتان لمحاكاة الأحداث:
النوع الأول: الاقتراض تنفيذ/eval ، واستخدم سمة لجمع حرف اسم الوظيفة ، ثم استخدم تنفيذ/eval لتشغيل الوظيفة.
يحب:
obj.ondataupdatestart = "checkdata"
هيكلها هو:
publicpropertyletondataupdatestart (byvala_strvalue)
تم حذف بعض رمز التحقق الصارم لـ A_Strvalue هنا.
p_strondataupdatestart = a_strvalue
endproperty
تم تشغيل الحدث على النحو التالي:
publicsubdataupdate ()
"... تجاهل العملية ...
تنفيذ (p_strondataupdatestart و "(المتغير المعلمة واحد ، متغير المعلمة اثنين)")
"... تجاهل العملية ...
ينتهي
اسمحوا لي أن أذكر بإيجاز الاختلافات بين التنفيذ والتقييم.
نفس "x = y". تتمثل نتيجة التنفيذ ("x = y") في تعيين قيمة y إلى x ، في حين أن eval ("x = y") ستعيد قيمة منطقية ، تمثل نتائج اختبار x و y. إذا كانت x مساوية لـ y ، فسوف يعود بشكل صحيح ، وإلا فإنه سيعود خطأ.
النوع الثاني: استعارة مؤشر الوظيفة getRef. وفقًا لتفسير دليل VBS ، فهي وظيفة مخصصة لأحداث الربط. التفسير المحدد هو كما يلي:
"إرجاع إشارة إلى عملية تربط حدث."
أمثلة تطبيق محددة ، مثل:
obj.ondataupdatestart = "checkdata"
تم تغيير هيكله إلى:
يمكن لـ PublicOndataUpdatestart "استخدام وضع GET/LET. أريد أن أكون كسولًا ، لذلك أعلن مباشرة عن متغير عام لتمريره.
تم تغيير مشغل الحدث إلى:
publicsubdataupdate ()
"... تجاهل العملية ...
setme.ondataupdatestart = getRef (onDataupDatestart)