موصى به: حول فصل رمز ASP والصفحة من أجل تجنب صعوبات الصيانة الناجمة عن سوء فهم رمز برنامج ASP TML ، تقدم هذه المقالة طريقة لاستخدام قوالب لفصل البرامج والصفحات لجعل البرمجة أسهل. عند استخدام ASP لإنشاء موقع ، غالبًا ما يظهر ملف ASP ، رمز البرنامج و HTM
هناك العديد من الفوائد لتحويل الصفحات الديناميكية لإنشاء ملفات HTML ثابتة ، مثل توليد صفحات الويب HTML يفضي إلى إدراجها بواسطة محركات البحث (خاصة بالنسبة للصفحات التي تقبل المعلمات الديناميكية). عند الوصول إلى مكتب الاستقبال ، يتم فصله عن الوصول إلى البيانات ، مع التخفيف من الضغط على الوصول إلى قاعدة البيانات وسرعة فتح صفحات الويب.
بالطبع ، كل شيء له مزاياه وعيوبه. يستهلك إنشاء صفحات HTML الكثير من مساحة القرص لتخزين هذه الملفات الثابتة. بالإضافة إلى قراءة وكتابة قاعدة البيانات أثناء عملية التحرير ، تحتاج أيضًا إلى قراءة قرص الخادم وكتابةه. يجب أن تجدد التغييرات في أنماط الصفحات جميع ملفات HTML ، إلخ.
على سبيل المثال ، يمكن للعديد من محركات البحث إرسال قائمة بعناوين صفحة الموقع. لم يعد إدراج الملفات الديناميكية مشكلة (مثل Google Sitemap). علينا أن نقيس وفهم المكاسب والخسائر بأنفسنا ، ولكن بغض النظر عن ماذا ، ما زلنا بحاجة إلى معرفة كيفية العمل. هنا سوف أقتبس مقالات الآخرين لشرح العديد من أفكار الجيل المشترك للرجوع إليها.
1. يستخدم المثال التالي FSO مباشرة لكتابة رمز HTML في ملف ثم إنشاء تنسيق ملف .html. هذا هو الأكثر بدائية. الميزة هي أنه بسيط ، والعيوب هو أن تعديل الصفحة غير مريح. المكان الذي أستخدمه عادة هو استخدامه لإنشاء ملف معلمة الموقع بأكمله. (عادة ، يتم تخزين موقع الويب مثل العنوان والاسم وما إلى ذلك في قاعدة البيانات. أقوم بإنشاء config.asp لحفظ هذه المكالمات المتغيرة لتجنب الوصول المتكرر إلى قاعدة البيانات)
| ما يلي هو المحتوى المقتبس: < ٪ اسم الملف = test.htm إذا طلب (الجسم) <> ثم set fso = server.createObject (scripting.filesystemObject) تعيين htmlwrite = fso.createTextFile (server.mappath (& filename &)) htmlwrite.write < html> < head> < title> & request.form (title) & </title> </head> htmlwrite.write < body> محتوى عنوان الإخراج: & request.form (title) & br/> محتوى الجسم الإخراج: & request.form (body) & </body> </html> htmlwrite.close تعيين fout = لا شيء تعيين fso = لا شيء إنهاء إذا ٪> < اسم النموذج = طريقة النموذج = بعد العمل => < اسم الإدخال = قيمة العنوان = حجم العنوان = 26> <br> < اسم textarea = الجسم> الجسم </textarea> <br> <br> < نوع الإدخال = إرسال اسم = إرسال قيمة = إنشاء html> </form> |
2. ومع ذلك ، من غير المريح للغاية إنشاء ملف HTML وفقًا للطريقة أعلاه. الطريقة الثانية هي استخدام تقنية القالب لاستبدال قيمة الكود الخاص في القالب بالقيمة المقبولة من حقل النموذج أو قاعدة البيانات ، وإكمال وظيفة القالب ، وإنشاء ملفات HTML مع جميع رموز القالب التي تم استبدالها أخيرًا. يتم استخدام هذه التكنولوجيا في كثير من الأحيان ، ومعظم CMSs تستخدم هذه الطريقة.
| ما يلي هو المحتوى المقتبس: template.htm '// template file < HTML> < الرأس> < title> $ title $ بواسطة cuoxin.com </title> </head> < الجسم> $ body $ </الجسم> </html> TestTemplate.asp '// إنشاء html < ٪ قاتمة FSO ، HTMLWRITE قاتمة Strtitle ، strcontent ، strout // إنشاء كائن نظام ملف set fso = server.createObject (scripting.filesystemObject) '// افتح ملف قالب الويب وقراءة محتوى القالب تعيين htmlwrite = fso.opentextFile (server.mappath (template.htm)) strout = f.readall htmlwrite.close strtitle = عنوان صفحة الويب الذي تم إنشاؤه strContent = محتوى صفحة الويب التي تم إنشاؤها '// استبدل العلامات الموجودة في القالب بمحتوى حقيقي Strout = استبدال (Strout ، $ title $ ، Strtitle) strout = استبدال (strout ، $ body $ ، strcontent) // قم بإنشاء الصفحة الثابتة ليتم إنشاؤها تعيين htmlwrite = fso.createTextFile (server.mappath (test.htm) ، true) '// اكتب محتوى إلى صفحة الويب htmlwrite.writeline strout htmlwrite.close استجابة. تم إنشاء الصفحة الثابتة بنجاح! '// قم بتحرير كائن نظام الملفات تعيين htmlwrite = لا شيء تعيين fso = لا شيء ٪> |
3. الطريقة الثالثة هي استخدام XMLHTTP للحصول على محتوى HTML الذي تم إنشاؤه بواسطة الصفحة الديناميكية ، ثم استخدام ADODB.Stream أو Scripting.FileSystemObject لحفظه في ملف HTML. ابحث عن قطعة من الكود لإنشاء HTML لـ XMLHTTP.
| ما يلي هو المحتوى المقتبس: < ٪ وظائف مشتركة 1. أدخل عنوان صفحة ويب عنوان عنوان URL ، وقيمة الإرجاع GethTpage هي رمز HTML لصفحة الويب الوجهة وظيفة gethttppage (url) خافت HTTP تعيين http = server.createObject (msxml2.xmlhttp) http.Open get ، url ، false http.send () إذا http.readyState <> 4 ثم وظيفة الخروج إنهاء إذا gethttppage = bytestobstr (http.responsebody ، gb2312) تعيين http = لا شيء إذا err.number <> 0 ثم err.clear وظيفة نهاية 2. قم بتحويل LANMA مباشرة ، اتصل مباشرة بصفحة ويب مع أحرف صينية مع XMLHTTP ، ستحصل على LANMA ، والتي يمكن تحويلها من خلال مكون ADODB.Stream. وظيفة bytestobstr (الجسم ، CSET) قاتمة objstream تعيين OBJStream = server.createBject (ADODB.Stream) objstream.type = 1 objstream.mode = 3 objstream.Open objstream.write الجسم objstream.position = 0 objstream.type = 2 objstream.charset = cset bytestobstr = objstream.readtext objstream.close اضبط OBJStream = لا شيء وظيفة نهاية txturl = server.mappath (../ index.asp) stext = gethttppage (txturl) set fileObject = server.createObject (scripting.filesystemObject) اسم الملف = ../index.htm set openfile = fileObject.OpentExtFile (server.mappath (filename) ، 2 ، true) 'true يتم إنشاؤه بمفرده إذا لم يكن موجودًا OpenFile.Writeline (Stext) اضبط OpenFile = لا شيء ٪> script> تنبيه (تم الانتهاء من توليد صفحات الويب الثابتة) ؛ History.Back () ؛ </script> |
ملخص ، هذه الطرق الثلاثة هي الأساليب الأكثر استخدامًا لإنشاء ملفات HTML. أفضل استخدام الطريقة الثالثة لأن تغييرات الصفحة مريحة للغاية. حتى لو تغيرت الصفحة الديناميكية ، فهي جيدة. فقط استخدم XMLHTTP لقراءته وإنشائه مرة أخرى.
مشاركة: تصميم توافق ذاكرة التخزين المؤقت لتطبيقات الويب بعد اجتياز الوكيل ، نظرًا لضيف طبقة وسيطة بين العميل والخدمة ، لا يمكن للخادم الحصول مباشرة على IP للعميل ، ولا يمكن لاتجاه جانب الخادم العودة مباشرة إلى العميل من خلال عنوان إعادة التوجيه. ومع ذلك ، في معلومات رأس HTTP لطلبات إعادة التوجيه ، تتم إضافة http_x