الموصى به: استخدم الإجراءات المخزنة لتنفيذ ترحيل البيانات ASP 1. إنشاء جدول TIKU_KOUSHIIF موجود (حدد * من dbo.sysObjects حيث id = object_id (n '[dbo].
ASP (صفحة الخادم النشط) هي تقنية تطوير صفحة ويب ديناميكية تعتمد على نظام PWS (خادم الويب الشخصي) ونظام IIS (خادم معلومات الإنترنت) الذي تم إطلاقه بواسطة Microsoft ، والذي أصبح الآن أكثر نضجًا ومثالية. هنا لدينا فقط بعض المناقشات البسيطة حول تحسين الكود.
1. إعلان متغيرات vbscript
في ASP ، يتم تزويد VBScript بدعم قوي ويمكنه دمج وظائف وأساليب VBScript بسلاسة ، مما يوفر راحة كبيرة لتوسيع وظائف ASP الحالية. نظرًا لأن مفهوم الأنواع المتغيرة قد تم توضيحه في ASP ، فإن العديد من المبرمجين اعتادوا على عدم إعلان متغيرات VBScript أثناء التفاعل بين ASP و VBScript ، مما يزيد من عبء التحليل للخادم وبالتالي يؤثر على سرعة طلب استجابة الخادم.
في ضوء ذلك ، يمكننا إجبار المستخدم على إجراء إعلانات متغيرة في VBScript تمامًا كما هو الحال في VB. تتمثل طريقة التنفيذ في وضع <٪ خيار صريح ٪> في بداية خط برنامج ASP.
2. تشفير عنوان عنوان URL
عندما نستخدم ASP لإنشاء عنوان عنوان URL ديناميكيًا مع المعلمات والقفز ، من الطبيعي تحليل IE ، ولكن عند تصفح NetScrape ، هناك أخطاء على النحو التالي:
خطأ HTTP 400
400 طلب سيء
بسبب بناء الجملة المشوه ، لا يمكن فهم الطلب من قبل الخادم.
يجب على العميل عدم تكرار الطلب دون تعديلات.
الحل هو استخدام طريقة urlencode لكائن الخادم المدمج في ASP إلى URL ترميز معلمات URL التي تم إنشاؤها. المثال على النحو التالي:
<٪
url = xur.asp
var1 = اسم المستخدم = & server.urlencode (xur)
var2 = & company = & server.urlencode (xurstudio)
var3 = & phone = & server.urlencode (021-53854336-186)
الرد. url url &؟ & var1 و var2 و var3
٪>
3. امسح الكائن
بعد استخدام الكائن ، استخدم أولاً الطريقة الإغلاق لتحرير موارد النظام التي يشغلها الكائن ؛ ثم اضبط قيمة الكائن على أي شيء لتحرير الكائن ليشغل الذاكرة. في ذلك الوقت ، تحطمت IIS من خلال إنشاء أكثر من 100 Recordets على صفحة بدون كائنات واضحة. يستخدم الرمز التالي محتوى قاعدة البيانات لإنشاء قائمة منسدلة. مثال الكود كما يلي:
<٪ mydsn = dsn = xur ؛ uid = xur ؛ pwd = xur
mysql = حدد * من المؤلفين حيث au_id <100
تعيين conntemp = server.createBject (adodb.connection)
conntemp.Open mydsn
SET RSTEMP = conntemp.execute (mySQL)
إذا كان rstremp.eof ثم
Response.Write قاعدة بيانات فارغة
الرد. write mysql
conntemp.close
تعيين conntemp = لا شيء
استجابة
نهاية إذا ٪>
<٪ تفعل حتى RSTMP.EOF ٪>
<٪
rstemp.movenext
حلقة
rstemp.close
تعيين RSTMAP = لا شيء
conntemp.close
تعيين conntemp = لا شيء
٪>
4. إنشاء استعلام SQL باستخدام السلاسل
لا يؤدي استخدام السلاسل لإنشاء استعلامات إلى تسريع سرعة تحليل الخادم. على العكس من ذلك ، فإنه سيزيد أيضًا من وقت تحليل الخادم. ولكن لا يزال من المستحسن استخدام السلاسل بدلاً من عبارات الاستعلام البسيطة للاستعلام. ميزة ذلك هي أنه يمكن أن يكتشف مشكلة البرنامج بسرعة ، وبالتالي تسهيل البرنامج وتوليده بكفاءة. الأمثلة على النحو التالي:
<٪ mysql = حدد *
mysql = mysql ومن الناشرين
mysql = mysql وأين state = 'ny'
الرد. write mysql
SET RSTEMP = conntemp.execute (mySQL)
rstemp.close
تعيين RSTMAP = لا شيء
٪>
5. استخدم الحالة لتحديد الشرط
عند الاختيار الشرطي ، حاول استخدام عبارات الحالة وتجنب استخدام البيانات. يمكن أن يؤدي استخدام عبارات الحالة إلى جعل البرنامج قابل للتدفق وتنفيذ أسرع مما لو كان البيانات. الأمثلة على النحو التالي:
<٪
لأني = 1 إلى 1000
ن = أنا
استجابة. write addsuffix (n) & <br>
التالي
٪>
<٪
الدالة addSuffix (NUM)
numpart = يمين (num ، 1)
حدد Case Numpart
الحالة 1
إذا instr (num ، 11) ثم
num = num & th
آخر
num = num & st
إنهاء إذا
الحالة 2
إذا instr (num ، 12) ثم
num = num & th
آخر
num = num & nd
إنهاء إذا
الحالة 3
إذا instr (num ، 13) ثم
num = num & th
آخر
num = num & rd
إنهاء إذا
الحالة 4
num = num & th
حالة أخرى
num = num & th
نهاية الاختيار
addSuffix = num
وظيفة نهاية
٪>
6. استخدم الثوابت المحددة في ملف Adovbs.inc لفتح مجموعة السجلات
عند فتح مجموعة سجلات ، يمكنك تحديد نوع المؤشر ونوع القفل الذي يفتحه مجموعة السجل.
هناك بعض الثوابت المحددة في ملف Adovbs.inc لتحديد هذه الأنواع. يتم حفظ ملف Adovbs.inc في دليل/inetpub/iissamples/iisamples. فيما يلي عدة أنواع مؤشر شائعة الاستخدام وأنواع القفل.
نوع المؤشر:
لا يمكن للمؤشر المتبني للتبني فقط المضي قدمًا ؛ يمكن أن يتحرك مؤشر AdapteNkeySet للأمام أو للخلف. إذا أضاف المستخدم سجلًا ، فلن يظهر السجل الجديد في مجموعة السجلات ؛ المؤشر المتبني ديناميكي وعشوائي. لا تعكس مجموعة سجلات Adopeenstatic تعديلات السجلات الناجمة عن المستخدمين الآخرين.
نوع القفل:
لا يمكن AdlockReadoney تعديل السجلات في مجموعة السجلات ؛ adlockpessistic يقفلها عند تحرير سجل ؛ يغلق AdlockOptimStic طريقة تحديث مجموعة السجلات فقط عندما لا يمكن تحديث سجلات AdlockBatchopeImstic إلا على دفعات.
<!-#تضمين Virtual =/Adovbs.inc->
<٪
connectme = dsn = xur ؛ uid = xur ؛ pwd = xur
sqltemp = حدد * من الناشرين حيث name = 'xur'
SET RSTEMP = server.createBject (ADODB.RecordSet)
rstemp.open sqltemp ، connectme ، engenstatic ، adlockoptimstic
Response.write RSTEMP.RECORDCOUNT
rstemp.close
تعيين RSTMAP = لا شيء
٪>
7. تجنب تعريف الكائن في ملف Global.asa
نظرًا لأن المحتويات في ملف Global.asa يمكن الرجوع إليها من قبل جميع الملفات في الموقع ، مما لا شك فيه ، يمكن أن يحدد تحديد الكائنات في ملف Global.asa الكثير من الازدواجية.
على سبيل المثال ، في وظيفة Application_onstart في Global.asa ، يتم التعريف التالي:
<٪ application_onstart
تعيين التطبيق (theconn) = server.createBject (Adodb.connection)
نهاية sub ٪> ؛
يتيح لك ذلك إجراء مراجع مماثلة في أي رمز على الموقع:
<٪
mysql = SELECT * من الناشرين حيث state = 'xur'
SET RSTIMP = Application (theconn) .execute (MySQL)
٪>
وبالمثل ، يمكن إنشاء كائن مجموعة السجلات في وظيفة session_onstart
<٪ SUBS_ONSTART
SET SESSION (RSTMP) = server.createBject (ADODB.RecordSet)
نهاية sub ٪>
ثم ، يتم إجراء الاقتباسات التالية في الموقع:
<٪
mysql = SELECT * من الناشرين حيث state = 'xur'
SET SETATION (RSTMP) = conntemp.execute (mySQL)
٪>
ومع ذلك ، فإن القيام بذلك أيضًا له تأثير سلبي كبير. نظرًا لأن كل من متغيرات التطبيق والجلسة تنشر فقط الموارد المحتلة عند إغلاق موقع الويب ، فإن معلمات الجلسة ستضيع الكثير من الذاكرة غير الضرورية ، وفي هذا الوقت يصبح متغير التطبيق عنق الزجاجة في أداء الخادم.
حل:
قم بإنشاء صفحة ASP لتحديد الكائنات ، وإدخال صفحة ASP هذه على الصفحة حيث تحتاج هذه الكائنات إلى استدعاء. على افتراض أنه يتم تعريف اسم صفحة ASP للكائن المحدد. ASP ، يمكن تقديم الصفحة عن طريق إضافة العبارة التالية إلى صفحة ASP المقابلة.
<!-#تضمين Virtual =/define.asp->
عند تقديم الصفحات ، من الأفضل عدم تضمين بيان <٪@language = vbscript ٪> في ملف ASP المراد تقديمه. لأنه في ملف ASP ، لا يمكن أن يكون هناك سوى لغة تحليل نصية واحدة محددة بواسطة @.
8. حماية السلامة
يوفر ASP آلية جيدة لحماية التعليمات البرمجية ، ويتم تنفيذ جميع رمز ASP على جانب الخادم ويعيد فقط نتيجة تنفيذ رمز العميل. ومع ذلك ، في الإصدار القديم من IIS ، يمكنك عرض الكود المصدري لـ ASP بعد اسم الملف :: $ ، والذي يقع بالفعل ضمن نطاق أمان خادم الويب وليس ضمن نطاق هذه المقالة. فيما يلي احتياطات أمان بسيطة.
على الرغم من أنه يوصى بتقديم الملفات باستخدام INC ASP كملحق ، إلا أنه لا يزال يوصى باستخدام ASP كملحق لتقديم الملفات هنا. عندما يتم تشغيل هذه الرموز على خادم ويب مع آلية أمان سيئة ، يمكنك تصفح محتويات الملف المستورد ببساطة عن طريق إدخال شريط العناوين (Inc هو الامتداد). هذا لأنه على خادم الويب ، إذا لم يتم تعريف مكتبة اتصال ديناميكية تحل نوعًا معينًا (مثل INC) ، يتم عرض الملف في التعليمات البرمجية المصدر.
لا تضع ملف قاعدة البيانات داخل بنية موقع الويب ، بحيث عندما يحصل شخص ضار على مسار قاعدة البيانات ، يمكنه بسهولة الحصول على قاعدة البيانات ثم تغيير محتوى قاعدة البيانات بشكل تعسفي. يتمثل النهج الأفضل في إنشاء DSN (اسم مصدر التاريخ) لقاعدة البيانات ، والوصول إلى DSN مباشرة عند الوصول إلى قاعدة البيانات.
مشاركة: نصائح ASP: تحسين كفاءة جمع الطلبات تحسين كفاءة استخدام مجموعة الطلبات للوصول إلى مجموعة ASP لاستخراج القيمة هي عملية تستغرق وقتًا طويلاً وحسابًا تستهلك الموارد. نظرًا لأن هذه العملية تحتوي على سلسلة من عمليات البحث عن المجموعات ذات الصلة ، فهذا أبطأ بكثير من الوصول إلى متغير محلي. لذلك إذا كنت تخطط لتكون في الصفحة