النصيحة الأولى: تحسين كفاءة استخدام مجموعة الطلبات
؟ يعد الوصول إلى مجموعة ASP لاستخراج قيمة عملية تستغرق وقتًا طويلاً وتستهلك الكثير من الموارد الحسابية. نظرًا لأن هذه العملية تتضمن سلسلة من عمليات البحث من خلال المجموعات ذات الصلة، فهي أبطأ بكثير من الوصول إلى متغير محلي. لذلك، إذا كنت تخطط لاستخدام قيمة في مجموعة الطلبات عدة مرات على الصفحة، فيجب أن تفكر في تخزينها كمتغير محلي. على سبيل المثال، اكتب التعليمات البرمجية في النموذج التالي لتسريع معالجة محرك البرنامج النصي:
strTitle=Request.Form("Title")
strFirstName=Request.Form("الاسم الأول")
strLastName=Request.Form("LastName")
إذا كان Len(strTitle) ثم strTitle=strTitle & " "
إذا كان strFirstName = "" ثم strFullName = strTitle & " " & strLastName
السيف لين(strFirstName)=1 ثم
strFullName=strTitle & strFirstName & "." & strLastName
آخر
strFullName=strTitle & strFirstName & " " & strLastName
نهاية إذا
??نصيحة 2: الوصول مباشرة إلى المجموعة المناسبة
??إذا لم يكن لديك خيار، فلا تستخدم strPage=Request("page") للحصول على المعلمات، لأن هذا سيبحث في جميع المجموعات بالترتيب—QueryString، Form، Cookies، ClientCertificate، ServerVarible حتى يتم العثور على اسم القيمة المطابقة الأولى. يعد القيام بذلك أقل كفاءة من الوصول إلى المجموعة المناسبة مباشرة، وهو غير آمن ما لم يكن هناك ضمان مطلق بأن القيمة لن تظهر في مجموعة أخرى.
على سبيل المثال، قد ترغب في البحث عن اسم خادم الويب الذي يلبي طلب العميل، ويتم تحقيق ذلك من خلال البحث عن "SERVER_NAME" في مجموعة Request.ServerVarables التي تظهر في كل استعلام. ومع ذلك، إذا كانت المجموعات الأخرى تحتوي أيضًا على قيم تسمى "SERVER_NAME" (أسماء المفاتيح ليست حساسة لحالة الأحرف)، فستحصل على نتائج غير صحيحة عند استخدام Request("server_Name"). باختصار، يجب الوصول إلى المجموعة المناسبة مباشرة كلما أمكن ذلك.
نصيحة 3: استخدم خاصية Response.IsClientConnected قبل العمليات التي تستغرق وقتًا طويلاً
؟؟ يعد استخدام Response.IsClientConnected طريقة مفيدة لمراقبة ما إذا كان المستخدم لا يزال متصلاً بالخادم ويقوم بتحميل صفحة الويب التي أنشأها ASP. إذا قام المستخدم بقطع الاتصال أو توقف عن التنزيل، فلن نضطر إلى إضاعة موارد الخادم في إنشاء صفحة الويب لأنه سيتم تجاهل محتويات المخزن المؤقت بواسطة IIS. لذلك، بالنسبة للصفحات التي تتطلب الكثير من الوقت لحساب أو استخدام الكثير من الموارد، فمن المفيد التحقق في كل مرحلة مما إذا كان الزائر غير متصل بالإنترنت:
... رمز لإنشاء الجزء الأول من الصفحة
إذا كان Response.IsClientConnected ثم
الاستجابة. فلوش
آخر
الاستجابة.النهاية
نهاية إذا
...... رمز لإنشاء الجزء التالي من الصفحة
?? نصيحة 4: تحسين عمليات ADO في ASP
?? بشكل عام، تشكل البيانات المحتوى الفعلي لموقع الويب. لذلك، من المفيد جدًا تحسين عمليات ADO لتسريع تنفيذ تعليمات ASP البرمجية:
??a. تحديد الأعمدة المطلوبة فقط: عند فتح مجموعة سجلات ADO، يجب ألا تستخدم اسم الجدول تلقائيًا (أي SELECT *) إلا إذا كنت بحاجة إلى الحصول على كافة الأعمدة. إن استخدام أعمدة منفصلة يعني تقليل كمية البيانات المرسلة إلى الخادم أو التي يتم جلبها منه. حتى إذا كنت بحاجة إلى استخدام جميع الأعمدة، فإن تسمية كل عمود على حدة ستحقق أفضل أداء، لأن الخادم لا يحتاج إلى تفسير أسماء الأعمدة.
??ب. استخدام الإجراءات المخزنة قدر الإمكان. الإجراءات المخزنة هي برامج مجمعة مسبقًا تحتوي على خطة تنفيذ معدة، لذا يتم تنفيذها بشكل أسرع من عبارات SQL.
??ج. استخدم أنماط المؤشر والقفل المناسبة. إذا كان كل ما تفعله هو قراءة البيانات من مجموعة السجلات وعرضها على الشاشة، فاستخدم مجموعة السجلات الافتراضية للقراءة فقط لإعادة التوجيه فقط. كلما قل العمل الذي يتعين على ADO القيام به للحفاظ على تفاصيل السجلات والأقفال، زاد الأداء الذي يؤديه.
??د. استخدام متغيرات الكائن. إحدى الطرق المؤكدة لتحسين الأداء عند التكرار عبر مجموعة سجلات هي استخدام متغيرات الكائن للإشارة إلى أعضاء المجموعة. على سبيل المثال:
بينما ليس RsGc.EOF
الاستجابة. اكتب "اسم المشروع:" & RsGc("GcMC") & "(رمز المشروع:" & RsGc("GcCode") & ")
"
RsGc.MoveNext
Wend
بالكود التالي لتسريع التنفيذ:
set GcMc=RsGc("GcMc")
تعيين GcCode=RsGc("GcCode")
بينما لا توجد استجابة rsGc.EOF. اكتب "اسم المشروع: " & GcMc & " (رمز المشروع: " & GcCode & ")
" RsGc.MoveNext
Wend
؟؟ ينشئ الكود الجديد مرجعًا لمتغير الكائن، لذلك يمكن استخدام متغير الكائن بدلاً من المتغير الفعلي، مما يعني أن محرك البرنامج النصي لديه عمل أقل بسبب وجود فهارس أقل في المجموعة.
??نصيحة 5: لا تخلط بين محركات البرامج النصية
??نحن نعلم أنه يمكن استخدام كل من VBScript وJScript في صفحات ASP. ولكن ليس من المستحسن استخدام JScript وVBScript في نفس الوقت وفي نفس الصفحة. نظرًا لأنه يجب على الخادم إنشاء مثيل ومحاولة تخزين محركي البرامج النصية (بدلاً من محرك واحد) مؤقتًا، فإن هذا يؤدي إلى زيادة الحمل على النظام إلى حد ما. ولذلك، لأسباب تتعلق بالأداء، يجب عدم خلط محركات البرامج النصية المتعددة في نفس الصفحة.