ASP (صفحة الخادم النشط) هي تقنية تطوير صفحة ويب ديناميكية تعتمد على نظام PWS (خادم الويب الشخصي) ونظام IIS (خادم معلومات الإنترنت) الذي تم إطلاقه بواسطة Microsoft ، والذي أصبح الآن أكثر نضجًا ومثالية. هنا لدينا فقط بعض المناقشات البسيطة حول تحسين الكود.
8 تقنيات تحسين ترميز ASP:
1. إعلان متغيرات vbscript
في ASP ، يتم تزويد VBScript بدعم قوي ويمكنه دمج وظائف وأساليب VBScript بسلاسة ، مما يوفر راحة كبيرة لتوسيع وظائف ASP الحالية. نظرًا لأن مفهوم الأنواع المتغيرة قد تم توضيحه في ASP ، فإن العديد من المبرمجين اعتادوا على عدم إعلان متغيرات VBScript أثناء التفاعل بين ASP و VBScript ، مما يزيد من عبء التحليل للخادم وبالتالي يؤثر على سرعة طلب استجابة الخادم.
في ضوء ذلك ، يمكننا إجبار المستخدم على إجراء إعلانات متغيرة في VBScript تمامًا مثلنا نجبر المستخدم على إجراء إعلانات متغيرة في VB. تتمثل طريقة التنفيذ في وضع <٪ خيار صريح ٪> في بداية خط برنامج ASP.
2. تشفير عنوان عنوان URL
عندما نستخدم ASP لإنشاء عنوان عنوان URL ديناميكيًا مع المعلمات والقفز ، من الطبيعي تحليل IE ، ولكن عند تصفح NetScrape ، هناك أخطاء على النحو التالي:
- httperror400
- 400BadRequest
- duetomalformedsyntax ، لذلك لا يمكن أن beunderstory من قبل theserver.
- يجب أن لا يتجاهل theclient.
الحل هو استخدام طريقة urlencode لكائن الخادم المدمج ASP إلى URL ترميز معلمات URL التي تم إنشاؤها.
- < ٪
- url = xur.asp
- var1 = اسم المستخدم = & server.urlencode (xur)
- var2 = & company = & server.urlencode (xurstudio)
- var3 = & phone = & server.urlencode (021-53854336-186)
- استجابة. Redirecturl &؟ & var1 & var2 & var3
- ٪ >
3. امسح الكائن
بعد استخدام الكائن ، استخدم أولاً طريقة الإغلاق لتحرير موارد النظام التي يشغلها الكائن ؛ في ذلك الوقت ، تحطمت IIS من خلال إنشاء أكثر من 100 Recordets على صفحة بدون كائنات واضحة. يستخدم الرمز التالي محتوى قاعدة البيانات لإنشاء قائمة منسدلة. مثال الكود كما يلي:
- < ٪ mydsn = dsn = xur ؛ uid = xur ؛ pwd = xur
- mysql = حدد*fromauthorswhereau_id < 100
- setConntemp = server.createBject (adodb.connection)
- conntemp.openmydsn
- setRstemp = conntemp.execute (mysql)
- ifrstemp.eofthen
- Response.Write قاعدة بيانات فارغة
- استجابة. writemysql
- conntemp.close
- setConntemp = لا شيء
- استجابة
- endif ٪ >
- < ٪ dountilrstemp.eof ٪ >
- < ٪
- rstemp.movenext
- حلقة
- rstemp.close
- setRstemp = لا شيء
- conntemp.close
- setConntemp = لا شيء
- ٪ >
4. إنشاء استعلام SQL باستخدام السلاسل
لا يؤدي استخدام الأوتار لإنشاء استفسارات إلى تسريع سرعة تحليل الخادم. ولكن لا يزال من المستحسن استخدام السلاسل بدلاً من عبارات الاستعلام البسيطة للاستعلام. ميزة ذلك هي أنه يمكن أن يكتشف مشكلة البرنامج بسرعة ، وبالتالي تسهيل البرنامج وتوليده بكفاءة. الأمثلة على النحو التالي:
- < ٪ mysql = حدد*
- mysql = mysql & fromemplishers
- mysql = mysql & wherestate = 'ny'
- استجابة. writemysql
- setRstemp = conntemp.execute (mysql)
- rstemp.close
- setRstemp = لا شيء
- ٪ >
5. استخدم الحالة لتحديد الشرط
عند الاختيار الشرطي ، حاول استخدام عبارات الحالة وتجنب استخدام البيانات. يمكن أن يؤدي استخدام عبارات الحالة إلى جعل البرنامج قابل للتدفق وتنفيذ أسرع مما لو كان البيانات. الأمثلة على النحو التالي:
- < ٪
- fori = 1to1000
- ن = أنا
- استجابة. writeaddsuffix (n) و <br>
- التالي
- ٪ >
- < ٪
- FunctionAddsuffix (NUM)
- numpart = يمين (num ، 1)
- SelectCasenumpart
- Case1
- ifinstr (num ، 11) ثم
- num = num & th
- آخر
- num = num & st
- Endif
- Case2
- ifinstr (num ، 12) ثم
- num = num & th
- آخر
- num = num & nd
- Endif
- Case3
- ifinstr (num ، 13) ثم
- num = num & th
- آخر
- num = num & rd
- Endif
- Case4
- num = num & th
- Caseelse
- num = num & th
- endselect
- addSuffix = num
- الوظيفية
- ٪ >
6. استخدم الثوابت المحددة في ملف Adovbs.inc لفتح مجموعة السجلات
عند فتح مجموعة سجلات ، يمكنك تحديد نوع المؤشر ونوع القفل الذي يفتحه مجموعة السجل. هناك بعض الثوابت المحددة في ملف Adovbs.inc لتحديد هذه الأنواع. يتم حفظ ملف Adovbs.inc في دليل/inetpub/iissamples/iisamples. فيما يلي بعض أنواع المؤشر بشكل شائع الاستخدام وأنواع القفل.
نوع المؤشر: يمكن للمؤسس المضي قدماً فقط المضي قدمًا. مستخدمين آخرين يعكسون.
نوع القفل: لا يمكن لـ AdlockReadoney تعديل السجلات في مجموعة السجلات ؛
- <!-#includevirtual =/adovbs.inc->
- < ٪
- connectme = dsn = xur ؛ uid = xur ؛ pwd = xur
- sqltemp = select*frommpublisherswherename = 'xur'
- setRstemp = server.createBject (adodb.recordset)
- rstemp.opensqltemp ، connectme ، engenstatic ، adlockoptimstic
- Response.WriterStemp.RecordCount & Recordsin <br> & sqltemp
- rstemp.close
- setRstemp = لا شيء
- ٪ >
7. تجنب تعريف الكائن في ملف Global.asa
نظرًا لأن المحتويات في ملف Global.asa يمكن الرجوع إليها من قبل جميع الملفات في الموقع ، مما لا شك فيه ، يمكن أن يحدد تحديد الكائنات في ملف Global.asa الكثير من الازدواجية. على سبيل المثال ، في وظيفة Application_onstart في Global.asa ، يتم التعريف التالي:
- < ٪ Oubplication_onstart
- setapplication (theconn) = server.createObject (adodb.connection)
- endub ٪ > ؛
يتيح لك ذلك إجراء مراجع مماثلة في أي رمز على الموقع:
- < ٪
- mysql = select*fromMpublisherswherestate = 'xur'
- setRstemp = Application (theconn) .execute (mySQL)
- ٪ >
وبالمثل ، يمكن إنشاء كائن مجموعة السجلات في وظيفة session_onstart
- < ٪ subsession_onstart
- setSession (RSTMP) = server.createBject (ADODB.RecordSet)
- endub ٪ >
ثم ، يتم إجراء الاقتباسات التالية في الموقع:
- < ٪
- mysql = select*fromMpublisherswherestate = 'xur'
- setSession (RSTMP) = conntemp.execute (mySQL)
- ٪ >
ومع ذلك ، فإن القيام بذلك له تأثير سلبي كبير. أداء. .
الحل: قم بإنشاء صفحة ASP لتحديد الكائنات ، وإدخال صفحة ASP هذه على الصفحة حيث تحتاج هذه الكائنات إلى استدعاء. على افتراض أنه يتم تعريف اسم صفحة ASP للكائن المحدد. ASP ، يمكن تقديم الصفحة عن طريق إضافة العبارة التالية إلى صفحة ASP المقابلة.
عند تقديم الصفحات ، من الأفضل عدم تضمين بيان <٪@language = vbscript ٪> في ملف ASP المراد تقديمه. لأنه في ملف ASP ، لا يمكن أن يكون هناك سوى لغة تحليل نصية واحدة محددة بواسطة @.
8. حماية السلامة
يوفر ASP آلية جيدة لحماية التعليمات البرمجية ، ويتم تنفيذ جميع رمز ASP على جانب الخادم ويعيد فقط نتيجة تنفيذ رمز العميل. ومع ذلك ، في الإصدار القديم من IIS ، يمكنك عرض الكود المصدري لـ ASP بعد اسم الملف :: $ ، والذي يقع بالفعل ضمن نطاق أمان خادم الويب وليس ضمن نطاق هذه المقالة. فيما يلي احتياطات أمان بسيطة.
على الرغم من أنه يوصى بتقديم الملفات باستخدام INC ASP كملحق ، إلا أنه لا يزال يوصى باستخدام ASP كملحق لتقديم الملفات هنا. عندما يتم تشغيل هذه الرموز على خادم ويب مع آلية أمان سيئة ، يمكنك تصفح محتويات الملف المستورد ببساطة عن طريق إدخال شريط العناوين (INC هو الامتداد). لم يتم تعريف النوع (مثل INC) ، يتم عرض الملف في رمز المصدر.
لا تضع ملف قاعدة البيانات داخل بنية موقع الويب ، بحيث عندما يحصل شخص ضار على مسار قاعدة البيانات ، يمكنه بسهولة الحصول على قاعدة البيانات ثم تغيير محتوى قاعدة البيانات بشكل تعسفي. يتمثل النهج الأفضل في إنشاء DSN (اسم مصدر التاريخ) لقاعدة البيانات ، والوصول إلى DSN مباشرة عند الوصول إلى قاعدة البيانات.
يعد كل من تقنيات تحسين ترميز ASP الثمانية المذكورة أعلاه أمرًا مهمًا للغاية ويتطلب من الجميع تجربته بعناية وفهمه حقًا ليصبح شيئًا خاصًا به.