تحسين ASP ، تقنية ذاكرة التخزين المؤقت ASP
1. ما هو ذاكرة التخزين المؤقت ASP/لماذا ذاكرة التخزين المؤقت
عندما يتم إنشاء موقع الويب الخاص بك في الأيام الأولى لتكنولوجيا ASP ، قد تشعر بالراحة التي جلبتها تقنية الويب الديناميكية ASP ، بالإضافة إلى التحكم HTTP العشوائي المعدلة والمجانية. ومع ذلك ، مع زيادة عدد الزيارات ، ستجد بالتأكيد أن الوصول إلى موقعك يصبح أبطأ وأبطأ ، وله IIS أكثر فأكثر. بعد ذلك ، يجب أن ترغب في تحسين ASP ، مثل استبدال المزيد من قواعد البيانات الجيدة ، وإنشاء فهارس ، وإجراءات التخزين كتابة ، وما إلى ذلك. لا تحتاج بعض هذه التدابير إلى زيادة ضغط التكلفة ، في حين أن بعض ضغط التكلفة (مثل وصول الكتلة إلى SQL) ، والتأثير ليس بالضرورة.
في مواجهة ضغط الوصول إلى الويب ، أعتقد أن الطريقة الأكثر اقتصادا هي استخدام تقنية تحسين ذاكرة التخزين المؤقت لتخفيف ضغط خدمة الويب.
يعني زيادة حجم وصول الويب عادة النمو السريع للطلب التالي على الموارد:
1. زيادة حركة مرور بطاقة الشبكة ، من الضروري استهلاك المزيد من مؤشرات ترابط شبكة معالجة وحدة المعالجة المركزية ومواضيع شبكة الإدخال/الإخراج.
2. من الضروري فتح/إغلاق اتصال قاعدة البيانات بشكل متكرر أكثر (إذا تم استخدام تقنية قاعدة البيانات -ستستخدم ASP عادة قاعدة البيانات كخزانة بيانات) ، وعدد الأشياء التي تستهلك بشكل خطير الموارد ، والدوقة المميتة الناجمة عن الموارد المتنافسة للموارد المتنافسة المعاملات ، والتي ستزيد من استهلاك الشبكة.
3. إذا تم استخدام الجلسة ، فإن IIs ستستهلك المزيد من الذاكرة من أجل الحفاظ على الحالة ، وقد يتسبب استهلاك الذاكرة في ذاكرة فعلية غير كافية ، وتسبب تبادلًا متكررًا بين الذاكرة الفعلية والذاكرة المساعدة ، مما يؤدي إلى توقف تنفيذ الكود
4. نظرًا للاستجابة في الوقت المناسب للوصول ، سيتسبب فشل الوصول إلى صفحة الويب ، مما سيؤدي إلى تحديث المستخدمين ، وبالتالي تفاقم احتياجات وحدات المعالجة المركزية والذاكرة والموارد الأخرى.
في الواقع ، بالنظر إلى تطبيق الويب المعتاد ، فإن تنفيذ الكود الديناميكي في كثير من الأحيان غير ضروري.
2. تصنيف ذاكرة التخزين المؤقت ASP
الملخص دون إذن ، يمكن تقسيم ذاكرة التخزين المؤقت لـ ASP إلى فئتين:
1. ذاكرة التخزين المؤقت للملف
إن ذاكرة التخزين المؤقت للملف SO -تتمثل في الحكم وفقًا للحكم المنطقي. يمكن الوصول إلى الملف الثابت من إعادة توجيه الويب إلى التكنولوجيا ، لتلبية احتياجات تقليل وحدات المعالجة المركزية ، موارد قاعدة البيانات. هناك العديد من هذه التطبيقات. Castle لها تأثير جانبي (فائدة) -يمكن تضمين هذا بسهولة بواسطة محركات البحث مثل Google. لقد اعتمدت بعض أنظمة البيان الصحفي المُعرف بذلك هذه التكنولوجيا.
2.
يعتمد ذاكرة التخزين المؤقت للملفات التي تم تحريكها أيضًا على حكم منطقي. البيانات في شكل ملفات. على سبيل المثال ، عادةً ما نقوم بتخزين بعض البيانات بتنسيق XML ، ثم نستخدم تقنية XSLT لتنفيذ العرض (تتطلب معالجة XML عادة كمية كبيرة من موارد وحدة المعالجة المركزية ، لذلك عادة ما تقرأ XML مباشرة إلى العميل للتعامل معها على وحدة المعالجة المركزية للعميل). هذه هي الطريقة التي تتم بها معالجة منتدى CSDN.
3. ذاكرة التخزين المؤقت للذاكرة الرئيسية
بالإضافة إلى ذلك ، يمكنك أيضًا التفكير في التعامل مع ذاكرة التخزين المؤقت في الذاكرة ، وتخزين المحتوى الذي يحتاج إلى الاستجابة في الوقت المناسب في الذاكرة. إذا تم تركيز عدد كبير من احتياجات الوصول على عدة صفحات صغيرة أو تخزين رئيسي ، فأريد استخدام ذاكرة التخزين المؤقت للذاكرة الرئيسية لتحسين أداء وصول الويب بشكل كبير.
3. كيفية تحقيق/استخدام ذاكرة التخزين المؤقت
يجب مراعاة المشكلات التالية لتنفيذ ذاكرة التخزين المؤقت:
1. ما هي الصفحات التي لن تتغير في وقت قصير؟
تحليل موقعك الخاص ، هناك العديد من الصفحات. على سبيل المثال ، عادةً ما يكون لموقع أعمدة الأخبار والمعلومات. ثم هذه الصفحات مناسبة لذاكرة التخزين المؤقت مع الملفات الثابتة. في الواقع ، يتم تنفيذ نظام البيان الصحفي So -so -so ، بحيث يمكنك أيضًا الرجوع إلى أفكار هذه الأنظمة لتحويل صفحة ASP الديناميكية الأصلية.
2. يتم إنشاء تلك الصفحات لجميع الزيارات لتوليد نفس المنطق (أي ، لا تميز بين الزوار).
باستثناء الأعمدة مثل الأخبار والمعلومات ، فإن جميع الزوار ينظرون إلى واجهة ، ويمكن تصميم تطبيق الموارد مثل المنتديات وموارد الاستهلاك الأخرى كجيل منطقي موحد (نفس المنشور ، و Zhang Sanli و Sisi متماثلان ). يمكنك أيضًا التفكير في كسر البيانات واستخدام تقنية البرنامج النصي بالإضافة إلى سعة معالجة الخادم ، أي متصفح العميل للمعالجة.
3. استخدم تكلفة وجمعة ذاكرة التخزين المؤقت.
أساسا الوقت لتغييرات الفضاء (الاستجابة). استخدم تقنية ذاكرة التخزين المؤقت للمعالجة المسبقة للمحتوى المتكرر لتحسين قدرة استجابة خادم الويب ، والأهم من ذلك الفوز بصالح الزوار.
السعر هو أن الطلب على مساحة الويب يزداد ، وقد يؤثر على تأثير الوصول.
لكنني أعتقد أن ذاكرة التخزين المؤقت المناسبة أكبر من العيوب.
4. بدلا من استخدام ذاكرة التخزين المؤقت في تلك الأماكن
تختلف صفحة الاستعلام الديناميكية ، ومحتوى استعلام كل شخص ، وبالتالي فإن نتائج العرض ليست هي نفسها ، لذلك من غير المرجح أن تنشئ ذاكرة التخزين المؤقت لنتائج الاستعلام ، وبالتالي فإن ذاكرة التخزين المؤقت أكثر تعقيدًا وفي أسفل معدل استخدام ذاكرة التخزين المؤقت ، مما يؤدي تكلفة الإدارة.
الرابع ، تحليل مثيل
لنفترض أن التصميم الأصلي لمنتدى الاقتراحات هو كما يلي:
في دليل الجذر:
default.asp الصفحة الرئيسية ، بشكل عام جوهر ، توصية وما شابه
يسرد هذا الملف أسماء جميع الأعمدة وإدخالها.
listthread.asp لا يحمل الملف أي معلمات للإشارة إلى جميع الملصقات ويحمل الدافع لتمثيل جميع ملصقات قطعة معينة. إذا تم تنفيذ فرع للإشارة إلى منشور العمود المحدد. إذا كنت تحمل معلمة الصفحة للإشارة إلى ترقيم الموضوع.
ViewThread.asp يسرد محتوى ملصق معين. نحن نفترض أن المشاركات يتم عرضها كخطاب ، وجميع متابعة الملصقات مدرجة وراءها. معلمة المعرف هي المنشور المراد عرضه.
الرد. app يستجيب إلى منشور معين ، احمل معرف المعلمة للرد على منشور معين
لا مناقشة أخرى.
أعلاه ، يمكننا أن نرى أنه إذا تم القيام جميعًا باستخدام ASP/PHP الأصلي ، فإن تنفيذ كل ملف ASP يتطلب عمليات قاعدة البيانات تقريبًا ، والاستعلام المتكرر ، والاستعماء المتعددة. يجب أن يُعرف أن قاعدة بيانات الاستعلام ستجلب في النهاية انخفاضًا في الأداء ، وتنخفض سرعة الاستجابة ، وأن تأثير التصفح البطيء على الزوار لن يكون مفضيًا إلى جودة الويب. الأهم من ذلك ، بالنسبة للشخصين في A و B ، قاموا بزيارة ViewThread.asp وما شابه ذلك إذا كانت المعرفات متسقة ، ثم في كثير من الأحيان يرون نفس المحتوى (رمز HTML الذي يتلقاه متصفحهم هو نفسه تقريبًا) ، ولكن ل لهذا في نفس المحتوى ، يحتاج الخادم إلى فتح اتصال قاعدة البيانات والاستعلام وقراءة السجلات وإظهار أن السجلات واتصالات قاعدة البيانات مغلقة. جوهر جوهر جوهر إذا تم الوصول إلى المزيد من الأشخاص من قبل المزيد من الأشخاص ، فإن النتيجة النهائية هي أن هؤلاء الأشخاص يزيد من موارد الخادم. في الواقع ، يمكن تحسين العمالة المكررة لنفس المحتوى باستخدام تقنية ذاكرة التخزين المؤقت. على سبيل المثال:
بعد إرسال محتوى REPY.ASP ، أطلقنا على الفور على الوظيفة الثابتة لإنشاء المحتوى الثابت إلى ملفات HTML الثابتة مثل ViewThread_xxxx.htm ، ثم عند زيارة ViewThread.asp؟ الملف الثابت المقابل ViewThreadxxxx.htm. وبهذه الطريقة ، عندما لا يكون المنشور آخر ، يتم تقديمه إلى المحتوى الثابت للمشاهد ؛
يمكن أن ينفذ listborad.asp أيضًا. يمكننا تحليل المعلمات التي قد يتم حملها ، وتعيين اسم ملف ذاكرة التخزين المؤقت على listboard_xx.htm ، وتحديث listboard_xxx.htm عند إضافة عمود جديد. يشبه ListTrathread.asp ، ولكن بسبب المزيد من المعلمات ، سيكون هناك الكثير من ملفات ذاكرة التخزين المؤقت. إذا كنت ترغب في Cache ListThread.asp؟ وينطبق الشيء نفسه على default.asp.
إذن كيف تحكم على متى يتم التحديث؟ في أي وقت للتحديث؟
讨论 listthread.asp؟ ملف ثابت. لاحظ أنه لا يوجد وجود هنا يعني أن ظهور محتوى جديد يتطلب منا التحديث.
كيف لا توجد الملفات؟ يمسح. يمكننا حذف جميع الملفات الثابتة مثل ListThRead_xxx_p2.htm عند نشر ملصق جديد وحذف الملصقات والملصقات المتحركة. بهذه الطريقة ، يتم إخطار ذاكرة التخزين المؤقت.
لا تزال هناك مشكلة واحدة متبقية الآن ، وكيفية إنشاء ملفات ثابتة؟
لاحظنا أن نفس المحتوى الذي ذكرناه من قبل.我们可以将改造前的 default.asp 、 listthread.asp 等拷贝一个副本 , 取名为 default_d.asp 、 listthread_2.asp , 且在同一个目录中 理论上 理论上 理论上 理论上 理论上 理论上 理论上 理论上 理论上 理论上 理论上 理论上 理论上 理论上 理论上 理论上 理论上 理论上 理论上 理论上 理论上 理论上 理论上 理论上 理论上 subid؟ ستكون نتائج الوصول إلى subID = 123 هي نفس المحتوى) ، بحيث في منطق الحاجة إلى إنشاء ملفات ثابتة ، ندعو النسخة قبل التعديل بواسطة طلب الوصول إلى الويب ، والحصول على رمز HTML ، وتخزينه كـ ملف ثابت. إن طلب الويب هذا يعادل في الواقع قبل أي مشاهد حقيقي يصل إلى محتوى ثابت ، يتم فحص الخادم نفسه بواسطة HTML الذي سيتم الإخراج ، ثم إرجاع هذه الرمز لتخزين وظيفة تشغيل الملف كملف ثابت. وبهذه الطريقة ، تم إنشاء ملف ذاكرة التخزين المؤقت قبل المشاهد الحقيقي.
مثل هذا المخطط لا يلمس التصميم الأصلي تقريبًا ، ولن يسبب أخطاء مثل 404 بسبب التحول. ثانياً ، ستساعد الملفات الثابتة أيضًا في تضمين موقعك بسهولة بواسطة محركات البحث مثل Google. ولم لا؟
أخيرًا ، ذكر أنه من خلال وصول الويب ، في بيئة برمجة ASP ، يستخدم العديد من الأشخاص مكونات XMLHTTP للوصول إليها ، مما سيؤدي إلى العديد من المشكلات. المورد الذي سيقوم XMLHTTP نفسه بتخزين طلبات التخزين المؤقت ، مما يؤدي إلى المحتوى الذي تم الحصول عليه من خلال طلباتنا من خلال هذا المكون ، مما يسبب الارتباك المنطقي. لذلك ، يجب عليك اختيار كائنات HTTP Server XML أو مكونات WinHTTP لتنفيذ موارد طلب الويب.
باستخدام تقنية ذاكرة التخزين المؤقت في ASP ، يمكن أن يحسن أداء موقع الويب الخاص بك إلى حد كبير.
قبل تقديم هذه التقنيات ، دعونا نوضح ما هي تقنية ذاكرة التخزين المؤقت لـ ASP.
تقوم ذاكرة التخزين المؤقت SO -SO في الواقع بتوفير مساحة في الذاكرة. بمجرد إجراء إجراء استعلام ووضع نتائج الاستعلام في ذاكرة التخزين المؤقت ، يمكنك زيارة البيانات بسرعة بسرعة. وإذا لم تقم بوضع البيانات في ذاكرة التخزين المؤقت ، عند تنفيذ هذا الاستعلام مرة أخرى ، يستهلك الخادم العملية من قاعدة البيانات وفرزها.
عندما يتم تخزين البيانات في ذاكرة التخزين المؤقت ، فإن الوقت الذي يستغرقه عند الاستعلام مرة أخرى في وقت عرض البيانات.
بمعنى آخر ، لا ينبغي لنا أن نضع البيانات التي تحتاج إلى تغيير في ذاكرة التخزين المؤقت للخادم.
الآن نناقش تقنية استخدام ASP على الخادم.
تقنية ذاكرة التخزين المؤقت.
عندما يكون لديك الكثير من البيانات (ثابتة ، أي تغييرات أقل) يجب عرضها على العميل ، يمكنك التفكير في استخدام تقنية ذاكرة التخزين المؤقت على الخادم. هذه التكنولوجيا مناسبة بشكل خاص لتلك المواقع التي لها تناسق قوي في نمط العرض (هاه ، لمواقع الويب غير المتوحشة ، ليس من السهل الاستخدام.)
في الواقع ، طريقة التنفيذ بسيطة بشكل خاص.
هذا مثال لعرض تصنيف الكتب
ملف displaybooks.asp:
<٪@ language = javas
كريب ٪>
<html>
<body>
<طريقة النموذج = post>
تصنيف الكتب ؛
<p>
<نوع الإدخال = إرسال>
<٪
وظيفة getBookSlistbox () ()
{{
bookslistbox = التطبيق (bookslistbox)
if (bookslistbox! = null) return bookslistbox ؛
crlf = string.fromcharcode (13 ، 10)
bookslistbox = <select name = books> + crlf ؛
SQL = SELECT * From Books Order by name ؛
cnnbooks = server.createBject (adodb.connection) ؛
cnnbooks.open (كتب ، admin ،) ؛
rstbooks = cnnbooks.execute (sql) ؛
flDbookName = rstBooks (اسم bookName) ؛
بينما (! rstbooks.eof) {
bookslistbox = bookslistbox + <point> +
fldbookName + + CRLF ؛
rstbooks.movenext () ؛
}
bookslistbox = bookslistbox +
التطبيق (bookslistbox) = bookslistbox
Return Bookslistbox ؛
}
٪>
إنه بسيط للغاية ، في الواقع ، يستخدم تقنية تطبيق بسيطة للغاية ، والفرق في جملة واحدة:
التطبيق (bookslistbox) = bookslistbox
يمكنك التحقق من أنك تجد أن عدد الطلبات على الخادم سيتم تقليلها كثيرًا. هذا الموقف مناسب بشكل خاص لمواقع الويب التي ليست متكررة للغاية مثل تلك التحديثات ، مثل تحديثك مرة واحدة فقط (أو وقت طويل).
دعنا نناقش تقنية ذاكرة التخزين المؤقت للعميل. تُستخدم هذه التقنية بشكل أساسي لحفظ المعلومات الشخصية للمستخدم ، مثل كلمات مرور المستخدم ورموز الرموز ، إلخ. ويستخدم بشكل أساسي بعض سمات اللغط. في الوقت نفسه ، ذكرت بعض مستخدمي الإنترنت ما إذا كانت الأسئلة التي يمكنها استخدام كائنات ADO في التطهير. التفسير غير واضح ، دع الرمز يتكلم أدناه:
ملف global.asa:
<!
الملفات/النظام/ado/msado15.dll->
<script language = vbscript runat = server>
sub application_onstart
SQL = حدد اسم المستخدم ، كلمة المرور من UserInfo
cnnusers = dsn = المستخدم
تعيين RSUSERS = server.createBject (ADODB.RecordSet)
لاحظ أنه يتم استخدام الجملتين التاليتين لتحقيق تقنية ADO المتاحة لفصل الاتصالات
rscsomomomersorsorlocation = aduseclient
rscosomers.Open SQL ، cnnadvworks ، engenstatic ، adlockreadonly
"كسر اتصال مجموعة السجلات وقاعدة البيانات
RSCOSOMERS.ACTIVECONNECTION = لا شيء
تعيين التطبيق (rscustomers) = rscustomers
نهاية الفرعية
file file users.asp
<٪
"طريقة الاستنساخ تجعل كل مستخدم لديه مجموعة سجلات سجلات
اضبط us us users = application (rsusers) .clone
اضبط اسم المستخدم = اسم المستخدم)
تعيين كلمة المرور = yourusers (كلمة المرور)
افعل أصحابك.
٪>
اسم المستخدم: <٪ = username ٪> كلمة مرور المستخدم: <٪ = password ٪>
<٪
yourusers.movenext
حلقة
٪>