قدمت المقالات السابقة بعض المعرفة الأساسية لسلسلة تصحيح JS. هذه المرة ، جلبت لك الأخوان المدولة المشوهة نقاط توقف JS وطرق تصحيح الأخطاء الديناميكية. يمكن للأصدقاء الذين يحتاجون إليها الرجوع إليها.
تمارين بعد الفصل الدراسي غادرت أمس 1. تحليل كيفية تنفيذ وظيفة VotePost على النحو الموصى به.
في الواقع ، لقد رأينا رمز المصدر. ما عليك سوى قراءة الكود المصدري ويمكنك معرفة كيفية تنفيذها.
وظيفة VotePost (n ، t ، i) {i || (i =! 1) ؛ var r = {blogapp: currentblogapp ، postid: n ، pottetype: t ، isabandoned: i} ؛ $ ("#digg_tips"). css ("color" ، "red"). html ( $ .ajax ({url: "/mvc/vote/voteblogpost.aspx" ، النوع: "post" ، datatype: "json" ، contentType: "application/json ؛ charset = utf-8" ، data: json.stringify (r) ، success: function (n) {if (n.issuccess) "_count") ؛ && (n.status == 500؟ $ ("#digg_tips"). }انها تقريبا مثل هذا.
ملاحظة: أستخدم رمز تنسيق النص السامي ، والذي يختلف قليلاً عن النتيجة بعد التنسيق على وحدة التحكم في الكروم.
يمكنك أيضًا تجربة أداة التنسيق عبر الإنترنت ، التأثير مشابه: JavaScript عبر الإنترنت جميل
بعد قراءة الكود ببساطة ، يمكنك معرفة أن هذه الوظيفة تحتوي على 3 معلمات. الأول هو postid ، وهو معرف المقالة ، والثاني هو التوصية (Digg) أو المعارضة (Bury).
لكن لم يتم استخدام الثلث ، والقيمة الافتراضية خاطئة
بالنظر إلى أسفل ، يعرض سلسلة "إرسال ..." على #Digg_Tips ، ثم يقدم البيانات إلى الخلفية من خلال AJAX.
بعد إرجاع البيانات ، إذا كانت N.ISSUCCESS صحيحة ، فسيتم +1 على معرف العدد المقابل لمثل (#DIGG_COUNT) أو الاعتراض (#bury_count).
ومع ذلك ، إذا كانت قيمة isabandoned صحيحة ، والعدد -1.
ثم يمكننا تخمين أن المعلمة الثالثة تستخدم لإلغاء التوصية أو الاعتراض. ببساطة ، قمت بالنقر فوق التوصية ، لكنني لا أريد أن أوصي بها الآن. يمكنني تمرير المعلمة الثالثة صحيحًا لتحقيق تأثير إلغاء التوصية.
دعنا نختبرها لاحقًا.
بعد ذلك ، يتم عرض معلومات N.Message التي يتم إرجاعها بواسطة الخادم على #DIGG_TIPS.
في حالة حدوث خطأ في AJAX ، فسيكون 500. سيؤدي ذلك إلى "آسف! حدث خطأ! يرجى التعليقات على [email protected]
هذه هي العملية العامة ، لأن هذه الوظيفة بسيطة ، يمكن رؤيتها في لمحة.
ربما يكون بعض الأصدقاء الجدد قد سألوا ، كيف تعرف ما هي القيمة التي هي CurrentBlogApp ، N ، T ، أنا؟
ثم دعنا نذهب إلى الخطوة التالية والتصحيح الديناميكي. التصحيح الديناميكي هو طريقة مفيدة للغاية للمشاريع المترجمة.
حدد أولاً رمز مصدر VotePost ، (قلت هذا بالأمس ولا أفهمه كثيرًا ، ثم عد وألقي نظرة أولاً.)
سهل للغاية ، لقد حددنا رمز المصدر.
بعد ذلك ، ننقر على الرقم 92 وننفذ عملية التوقف.
لماذا لا تقاطع في السطر 91؟
نظرًا لأن السطر 91 هو جزء إعلان الوظيفة ، لا يمكننا تعيين نقطة توقف ، يمكننا تعيين نقطة توقف على الرمز المراد تنفيذه بواسطة الوظيفة.
رؤية أن عدد الخط للخط 91 قد تحول إلى اللون الأزرق ، مما يشير إلى وجود نقطة توقف في هذا المكان. في الوقت نفسه ، يمكننا أن نرى نقاط التوقف التي تم إسقاطها في عمود نقاط التوقف على اليمين.
يدير عمود نقاط التوقف جميع نقاط التوقف ، والتي يمكن إعادة توجيهها بسهولة إلى موضع نقطة التوقف المقابلة ، وسيتم استخدامها في المستقبل.
الآن بعد أن انتهينا من تعيين نقطة الإيقاف ، سننقر على التوصية. . (على الرغم من أنني أشعر أنني أغش في التوصيات ، إلا أنني لم أكن أعتقد ذلك حقًا. لقد وجدت للتو زرًا لممارسة.)
عند النقر فوق زر التوصية ، حدث شيء سحر. بدلاً من تشغيل وظيفة التوصية ، قفزت إلى نقطة الإيقاف التي قمنا بها للتو في لوحة المصادر من وحدة التحكم.
الآن ، لا يمكنك فقط رؤية المتغير الحالي في عمود متغيرات SCOPE على اليمين ، ولكن أيضًا نقل الماوس مباشرة إلى أي متغير لعرض قيمة المتغير.
يعرض عمود متغيرات النطاق النطاق الحالي ونطاقه الأم ، وكذلك الإغلاق.
أليست مريحة للغاية؟ . (ساعدني متغيرات النطاق كثيرًا عندما كنت أتعلم أولاً.)
دعنا نذهب إلى الخطوة التالية واضغط على F10 3 مرات لرؤية شيء من هذا القبيل.
في كل مرة نضغط فيها على F10 ، سنقوم بتنفيذ بيان. بعد الضغط عليه 3 مرات الآن ، سنقوم بتنفيذ $ ("#digg_tips"). css ("color" ، "red"). html (
حتى نتمكن من رؤية #DIGG_TIPS يعرض الكلمات في التقديم على الصفحة.
ولكن عندما نضغط على F10 مرة أخرى ، وجدنا أنه استمر في التنفيذ على طول الطريق دون إدخال وظيفة رد الاتصال داخل Ajax.
هذا سؤال مربك ، وأريد التركيز عليه.
بالنسبة لوظائف رد الاتصال مثل هذا ، وخاصة غير متزامن ، نحتاج إلى نقطة التوقف التالية داخل وظيفة رد الاتصال.
لذلك يمكننا فقط تعيين نقطة توقف على السطر 96. الآن ننقر على التوصية وما زلنا نتوقف عند السطر 92. يمكننا فقط الضغط على F8 وكسرها في وظيفة رد الاتصال Ajax.
الآن ، يمكننا تصحيح بيانات رد الاتصال ، ويمكننا أيضًا أن نجد أن هناك شيء إغلاق إضافي في متغيرات النطاق على اليمين ، وهو الإغلاق.
إذا لم تتمكن من فهمها الآن ، فما عليك سوى الذهاب إليها. يجب تقديم هذا الشيء في فترة زمنية كبيرة ، ولا يمكن تفسيره بكلمات قليلة. على أي حال ، وحدة التحكم قوية جدا.
أثناء رؤية الإغلاق ، نرى أيضًا بيانات الإرجاع N of Ajax. من الواضح أن خاصية issuccess الخاصة بي خاطئة ولم تنجح لأنها تُرجع رسالة "لا يمكن أن يوصي المحتوى الخاص بك".
أليس من المثير للاهتمام جدا؟ التصحيح الديناميكي يجعل من السهل العثور على الأخطاء؟
بعد ذلك ، دعنا نجربة المعلمة الثالثة.
ندخل VotePost (cb_entryid ، 'digg' ، true) ؛ واضغط على إدخال.
كما توقف عند نقطة توقف السطر 92 ، لذلك لن يتصحيح في هذا ، ويدخل مباشرة وظيفة رد الاتصال Ajax لـ F8.
هنا نرى بوضوح أنه عندما تكون المعلمة الثالثة صحيحة ، يتم بالفعل إلغاء التوصية. في الوقت نفسه ، يمكنك أن ترى أن رقم التوصية هو بالفعل -1 ، حتى لو تم تحديثه.
هذه المرة استخدمنا مفتاحين اختصار F10 و F8. سنقدم لهم بالتفصيل غدًا. اليوم سوف نتعلم تصحيح الأخطاء الأساسية أولاً.
تمارين بعد الفصل: (تحسين الصعوبة)
1. تحقق من زر إرسال التعليق للتعليقات أدناه وابحث عن حدثه. (JQuery Bound)
2. تصحيح ديناميكي عملية تنفيذ هذا الحدث التعليق التقديم.
إذا كنت لا تعرف هذا التمرين ، فمن المستحسن قراءة "حديث موجز حول مشكلات وضع رمز مصدر jQuery" للتحليل التفصيلي.
تأتي هذه المقالة من: مقالة Blog Garden Blogger المشوهة. http://www.cnblogs.com/52cik/