موصى به: رمز موقع Max Movie لإنشاء تغذية RSS منذ بعض الوقت ، من أجل إضافة وظيفة اشتراك RSS إلى موقع الفيلم الخاص بي ، كتبت رمز ASP الذي يولد بشكل ديناميكي خلاصة RSS. لا يمكنني تحميل المرفقات ، لذلك قمت بلصق الرمز. لم يمض وقت طويل على أي حال. يمكن للأصدقاء الذين يستخدمون Max كموقع الفيلم استخدامه مباشرة. تغيير أنواع أخرى من المواقع.
يعمل مطورو ASP باستمرار للحصول على أداء أفضل وقابلية التوسع في مشاريع التصميم الخاصة بهم. لحسن الحظ ، هناك العديد من الكتب والمواقع التي تقدم نصيحة رائعة حول هذا الموضوع. ومع ذلك ، فإن أساس هذه الاقتراحات هو الاستنتاج المستخلص من بنية عمل منصة ASP ، وليس هناك قياس للتحسن الفعلي في الأداء. نظرًا لأن هذه الاقتراحات تتطلب عمليات ترميز أكثر تعقيدًا وتقليل قابلية قراءة الترميز ، يمكن للمطورين قياس أنفسهم فقط ما إذا كان الأمر يستحق الدفع لتحسين أداء تطبيقات ASP الخاصة بهم دون رؤية التأثير التشغيلي الفعلي.
تنقسم هذه المقالة إلى جزأين ، وسأقدم بعض نتائج اختبار الأداء لمساعدة المطورين على تحديد ما إذا كانت هناك مبادرة معينة لا تستحق فقط للمشاريع المستقبلية ، ولكن أيضًا قادرة على تحديث المشروع الأصلي. في الجزء الأول ، سأراجع بعض المشكلات الأساسية في تطوير ASP. في الجزء الثاني ، سيتم إشراك بعض تحسين وظائف ADO وسيتم مقارنة نتائجها مع صفحة ASP التي تستدعي كائن VB COM لتنفيذ وظيفة ADO نفسها. هذه النتائج هي فتح العين وأحيانًا مفاجئة.
في هذه المقالة ، سنجيب على الأسئلة التالية:
* ما هي الطريقة الأكثر فعالية لكتابة المحتوى الذي تم إنشاؤه بواسطة ASP في دفق الاستجابة؟
* هل يجب تشغيل المخزن المؤقت؟
* هل يجب أن أفكر في إضافة تعليقات إلى رمز ASP؟
* هل يجب تعيين اللغة الافتراضية بشكل صريح للصفحة؟
* هل يجب إيقاف تشغيل حالة الجلسة إن لم يكن مطلوبًا؟
* هل يجب وضع منطق البرنامج النصي في الروتين الفرعي ومناطق الوظائف؟
* ما هي تأثيرات استخدام الملفات؟
* ما نوع التحميل الذي سيتم تطبيقه عند إجراء معالجة الأخطاء؟
* هل تعيين معالجة السياق له أي تأثير على الأداء؟
تم إجراء جميع الاختبارات باستخدام أداة تركيز تطبيقات الويب الخاصة بـ Microsoft (WAST) ، وهي أداة مجانية يمكن العثور عليها هنا. لقد قمت بإنشاء برنامج نصي اختبار بسيط مع Wort ، واتصل مرارًا وتكرارًا باختبار صفحة ASP الموضح أدناه (أكثر من 70،000 مرة لكل منهما). يعتمد وقت التفاعل على متوسط الوقت الإجمالي للبايت الأخير (TTLB) ، أي من الوقت المطلوب الأولي للوقت الذي تتلقى فيه الأداة آخر جزء من البيانات من الخادم. خادم الاختبار الخاص بنا هو Pentium 166 مع 196 ميجابايت من الذاكرة و Pentium 450 مع 256 ميجابايت من الذاكرة. قد تعتقد أن أداء هذه الآلات ليس متقدمًا للغاية ، ولكن لا تنسى أننا لا نختبر سعة الخادم ، فنحن نختبر فقط الوقت الذي يستغرقه الخادم لمعالجة صفحة واحدة في وقت واحد. هذه الآلات لا تقوم بعمل آخر أثناء الاختبار. يتم تضمين البرامج النصية اختبار WAST وتقارير الاختبار وجميع صفحات اختبار ASP في ملف ZIP ، ويمكنك مراجعة واختبارها بنفسك.
ما هي الطريقة الأكثر فعالية لكتابة المحتوى الذي تم إنشاؤه بواسطة ASP في دفق الاستجابة؟
أحد الأسباب الرئيسية لاستخدام ASP هو إنشاء محتوى ديناميكي على الخادم. لذلك من الواضح أن نقطة انطلاق اختبارنا هي تحديد الطريقة الأنسب لإرسال محتوى ديناميكي إلى دفق الاستجابة. من بين الخيارات العديدة ، اثنان هما الأكثر أساسية: أحدهما هو استخدام علامات ASP المضمنة ، والآخر هو استخدام عبارة Response.write.
لاختبار هذه الخيارات ، نقوم بإنشاء صفحة ASP بسيطة حيث يتم تعريف بعض المتغيرات ويتم إدراج قيمها في الجدول. في حين أن هذه الصفحة بسيطة وليست عملية للغاية ، فإنها تتيح لنا فصل واختبار بعض الأسئلة المنفصلة.
باستخدام علامات ASP المضمنة
يتضمن الاختبار الأول استخدام علامة ASP مضمنة <٪ = x ٪> ، حيث x هو متغير مخصص. هذه الطريقة هي الأسهل إلى حد بعيد ، وهي تحافظ على جزء HTML من الصفحة بتنسيق يسهل قراءته وصيانته.
| <٪ خيار صريح قاتمة firstname قاتمة اسم العاليا خافت الأوسط عنوان قاتم مدينة قاتمة حالة خافتة قفص الصوتية خافت الفاكس البريد الإلكتروني الخافت قاتمة المواليد FirstName = جون الأوسط = ف اسم العائلة = عام العنوان = 100 الشارع الرئيسي المدينة = نيويورك الدولة = نيويورك Phonenumber = 1-212-555-1234 Faxnumber = 1-212-555-1234 البريد الإلكتروني = [email protected] تاريخ الميلاد = 1/1/1950 ٪> <html> <head> <title> اختبار الاستجابة </ title> </head> <body> <h1> اختبار الاستجابة </h1> <griding> <tr> <td> <b> الاسم الأول: </b> </td> <td> <٪ = firstName ٪> </td> </r> <tr> <td> <b> الأولي الأوسط: </b> </td> <td> <٪ = middleinitial ٪> </td> </tr> <tr> <td> <b> الاسم الأخير: </b> </td> <td> <٪ = lastName ٪> </td> </tr> <tr> <td> <b> العنوان: </b> </td> <td> <٪ = العنوان ٪> </td> </tr> <tr> <td> <b> المدينة: </b> </td> <td> <٪ = City ٪> </td> </tr> <tr> <td> <b> الحالة: </b> </td> <td> <٪ = state ٪> </td> </tr> <tr> <td> <b> رقم الهاتف: </b> </td> <td> <٪ = phonenber ٪> </td> </r> <tr> <td> <b> رقم الفاكس: </b> </td> <td> <٪ = faxnumber ٪> </td> </r> <tr> <td> <b> البريد الإلكتروني: </b> </td> <td> <٪ = البريد الإلكتروني ٪> </td> </tr> * </table> </body> </html> |
رمز كامل لـ /app1/response1.asp
الأفضل السابق (معدل الاستجابة) = 8.28 مللي ثانية/صفحة
استخدم عبارة Response.write على كل سطر من HTML
توصي العديد من مستندات التعلم الأفضل بتجنب الطريقة السابقة. السبب الرئيسي هو أنه خلال صفحة الإخراج وصفحة المعالجة التي تطبق وقت التفاعل ، إذا كان على خادم الويب التحويل بين إرسال HTML الخالص ومعالجة البرامج النصية ، تحدث مشكلة تسمى تحويل السياق. عندما يسمع معظم المبرمجين هذا ، فإن رد فعلهم الأول هو لف كل سطر من HTML الأصلي في وظيفة الاستجابة.
| ... استجابة. write (<html>) استجابة. write (<head>) Response.write (<title> اختبار الاستجابة </title>) استجابة. write (</head>) استجابة. write (<body>) Response.write (<h1> اختبار الاستجابة </h1>) استجابة. write (<الطاولة>) Response.write (<tr> <td> <b> الاسم الأول: </b> </td> <td> & firstName & </td> </r>) Response.write (<tr> <td> <b> الأولي الأوسط: </b> </td> <td> و middleinitial & </td> </tr>) ... < |
/app1/response2.asp جزء
الأفضل السابق (معدل الاستجابة) = 8.28 مللي ثانية/صفحة
وقت رد الفعل = 8.08 MSec/صفحة
الفرق = -0.20 مللي ثانية (تخفيض 2.4 ٪)
يمكننا أن نرى أن استخدام هذا النهج صغير جدًا في الأداء مقارنة باستخدام العلامات المضمنة ، ربما لأن الصفحة تقوم بتحميل الخادم بمجموعة من مكالمات الوظائف الصغيرة. أكبر عيب في هذا النهج هو أنه نظرًا لأن HTML مضمن الآن في البرامج النصية ، يصبح رمز البرنامج النصي أكثر مطوّلة وأكثر صعوبة في القراءة والصيانة.
مشاركة: 20 أمثلة مفيدة للغاية في برمجة ASP (i) 1. كيفية استخدام ASP لتحديد المسار الفعلي الافتراضي لموقع الويب الخاص بك الإجابة: استخدم طريقة mappath: <٪ = server.mappath () ٪> 2. كيف أعرف المستعرض الذي يستخدمه المستخدم؟ الإجابة: استخدم طريقة كائن الطلب:
5 صفحات في إجمالي الصفحة السابقة 12345NEXT