في الآونة الأخيرة، يحتاج موقع ويب أحد الأصدقاء إلى إنشاء موقع ويب ثابت، ولكن في بعض الأحيان قد تكون هناك مشاكل عند إنشاء موقع ثابت. لقد قمنا بتجميع بعض الطرق، ويمكنك الاختيار وفقًا لاحتياجات موقع الويب الخاص بك. 1. طريقتان بسيطتان لإنشاء صفحات رئيسية ثابتة في ASP
لماذا إنشاء صفحة رئيسية ثابتة؟
1. إذا كانت صفحتك الرئيسية تقرأ قاعدة البيانات كثيرًا، فستكون السرعة بطيئة جدًا وتستهلك الكثير من موارد الخادم. وبطبيعة الحال، فإن استخدام سرعة الوصول إلى الصفحة الثابتة أسرع بكثير
2. العثور عليه بسهولة عن طريق محركات البحث
3. في حالة وجود مشكلة في البرنامج يمكن الدخول إلى الصفحة الرئيسية.
4. هناك الكثير من الآخرين، فكر في الأمر بنفسك :)
طريقة التطبيق:
إذا كانت الصفحة الرئيسية الخاصة بك هي Index.asp، فيمكنك إنشاء Index.htm (يجب أن يكون تسلسل الوصول الافتراضي هو Index.htm، وindex.asp). بهذه الطريقة، عندما يقوم زائر بزيارة موقع الويب الخاص بك لأول مرة، فإنه يفتح ملف Index.htm. يمكنك إنشاء الرابط الموجود على الصفحة الرئيسية لموقع الويب في ملف Index.asp، بحيث يظهر ملف Index.asp عند النقر فوق الرابط الموجود في الصفحة الرئيسية من أي صفحة في موقع الويب، مما يضمن توقيت تحديث المعلومات (بعد كل شيء). ، يجب تحديث ملف Index.htm يدويًا في كل مرة).
الطريقة الأولى:
قم بتضمين ملف الصفحة الرئيسية مباشرةً في مربع نص النموذج، وأرسل رمز الصفحة الرئيسية كبيانات، ثم قم بإنشاء صفحة ثابتة.
الرمز هو كما يلي:
انسخ رمز الكود كما يلي:
<%
'------------------------------------------------ - ---------
"استخدم إرسال النموذج لإنشاء تعليمات برمجية للصفحة الرئيسية الثابتة."
"تأكد من أن مساحتك تدعم FSO وتحتوي على محتوى تعليمات برمجية أقل على الصفحة الرئيسية."
'------------------------------------------------ - ---------
محتوى خافت
المحتوى=تريم(Request.Form(content))
إذا المحتوى<> ثم
استدعاء ماكيندكس ()
نهاية إذا
مؤشر ماكين الفرعي ()
تعيين Fso = Server.CreateObject(Scripting.FileSystemObject)
ملفين=Server.MapPath(index.htm)
تعيين Site_Config=FSO.CreateTextFile(Filen,true, False)
Site_Config.اكتب المحتوى
Site_Config.Close
تعيين Fso = لا شيء
Response.Write(<script>alert('تم إنشاء الصفحة الرئيسية بنجاح!')</script>)
النهاية الفرعية
%>
< اسم النموذج = طريقة النموذج 1 = الإجراء اللاحق =>
<اسم منطقة النص = المحتوى>
<!-- #i nclude file=index.asp -->
</textarea>
<ر>
<نوع الإدخال=اسم الإرسال=قيمة الإرسال=إرسال>
</النموذج>
عيب:
1. إذا كانت الصفحة الرئيسية تتضمن العلامة <@ ..>، فسيتم ظهور خطأ.
2. إذا كان رمز الصفحة الرئيسية طويلاً جدًا، فلا يمكن إرساله باستخدام نموذج (هناك حد معين لطول بيانات النموذج).
حل:
1. قم بإزالة العلامة <@ > الموجودة في ملف Index.asp
2. استخدم eWebEditor لإرسال ودعم البيانات الضخمة (يمكن تقسيمها تلقائيًا)
ميزة:
يمكن تعديل المحتوى في الوقت الفعلي عند إنشائه.
الطريقة الثانية:
استخدم XMLHTTP مباشرة للحصول على التعليمات البرمجية الخاصة بـ Index.asp
انسخ رمز الكود كما يلي:
<%
'------------------------------------------------ - ---------
'استخدم XMLHTTP لإنشاء رمز ثابت للصفحة الرئيسية
'Curl هو عنوان صفحتك الرئيسية، تأكد من أن مساحتك تدعم FSO
'------------------------------------------------ - ---------
قراءة خافتة، حليقة، المحتوى
الضفيرة = http://www.xx0123.com/index.asp
قراءة = getHTTPage(حليقة)
إذا قرأت <> ثم
المحتوى=قراءة
استدعاء ماكيندكس ()
نهاية إذا
مؤشر ماكين الفرعي ()
تعيين Fso = Server.CreateObject(Scripting.FileSystemObject)
ملفين=Server.MapPath(index.htm)
تعيين Site_Config=FSO.CreateTextFile(Filen,true, False)
Site_Config.اكتب المحتوى
Site_Config.Close
تعيين Fso = لا شيء
Response.Write(<script>alert('تم إنشاء الصفحة الرئيسية بنجاح!')</script>)
النهاية الفرعية
الدالة getHTTPPage(url)
خافت http
تعيين http=Server.createobject(Microsoft.XMLHTTP)
Http.open الحصول على، URL، خطأ
المتشعب.إرسال ()
إذا Http.readystate<>4 ثم
وظيفة الخروج
نهاية إذا
getHTTPPage=bytesToBSTR(Http.responseBody,GB2312)
تعيين http=لا شيء
إذا كان err.number<>0 ثم err.Clear
وظيفة النهاية
الدالة BytesToBstr(body,Cset)
objstream خافت
تعيين objstream = Server.CreateObject(adodb.stream)
objstream.Type = 1
objstream.Mode =3
objstream.Open
objstream.اكتب النص
objstream.Position = 0
objstream.Type = 2
objstream.Charset = Cset
BytesToBstr = objstream.ReadText
objstream.Close
تعيين objstream = لا شيء
وظيفة النهاية
%>
2. فصل القالب وتوليد الدفعة
المحتوى الذي سيتم استبداله في ملف القالب موجود في {...}
من أجل السعي لتحقيق البساطة، تمت إزالة رمز معالجة الأخطاء (لا يمكن أن تكون معلمة السلسلة التي سيتم استبدالها في الاستبدال قيمة فارغة، وبالطبع يجب على fso أيضًا التحقق من الأخطاء).
انسخ رمز الكود كما يلي:
<%
'------------------------------------------------ - ------------------------------------------------- - -----------------
من: كيفن فونج http://www.yaotong.cn
المؤلف: kevin fung Laggard ID: kevin2008، يرجى الاحتفاظ به كما هو عند إعادة الطباعة
'الزمن: 2006/07/05 الإصدار الأول لمنتدى Laggard
'------------------------------------------------ - ------------------------------------------------- - ------------------
بداية خافتة 'هذا المتغير هو موضع مجموعة السجلات الذي سيشير إليه المؤشر، ويتم الحصول عليه ديناميكيًا من خلال المعلمات
Dim Template 'سيقوم ملف القالب بقراءة هذا المتغير في سلسلة
محتوى خافت "تم استبدال متغير السلسلة."
خافت objConn "كائن الاتصال".
Dim ConnStr 'سلسلة الاتصال
بيان استعلام Dim SQL
Dim cnt:cnt = 1 'تهيئة عداد الحلقة لهذه الدورة
start = request(start) 'احصل على موضع البداية للمؤشر المستدير الحالي
إذا كان IsNumeric(start) فابدأ = CLng(start) وإلا ابدأ=1
إذا كانت البداية = 0، فابدأ = 1 'إذا كانت البداية
ConnStr = الموفر = Microsoft.Jet.OLEDB.4.0؛ مصدر البيانات = & Server.MapPath(DataBase.mdb)
sql = حدد * من table_name
تعيين objConn = Server.CreateObject(ADODB.Connection)
objConn.فتح ConnStr
مجموعة rs = Server.CreateObject(ADODB.Recordset)
rs.open sql,objConn,1,1 'افتح مجموعة البيانات
rs.AbsolutePosition = start 'الخطوة الأكثر أهمية هي توجيه المؤشر للبدء، والذي يتم الحصول عليه ديناميكيًا من خلال المعلمات
Template = getTemplate(Server.MapPath(template.html))' template.html هو ملف قالب، وتتم قراءة السلسلة من خلال الوظيفة getTemplate. المحتوى الذي سيتم استبداله في ملف القالب موجود في {...}
بينما ليس rs.eof وcnt<= 500 '500 هو تعيين عدد الدورات لطلب إنشاء صفحة، وتعديله وفقًا للموقف الفعلي، وإذا كان مرتفعًا جدًا، فسيحدث خطأ المهلة عندما يكون هناك الكثير مجموعات السجلات.
content = Replace(Template,{filed_name_1},rs(filed_name_1)) 'استبدل محتوى القالب بقيمة الحقل
المحتوى = استبدال (المحتوى، {filed_name_2}، rs (filed_name_2))
...
المحتوى = استبدال (المحتوى، {filed_name_n}، rs (filed_name_n))
genHtml content,Server.MapPath(htmfiles/&rs(id)&.html) 'إنشاء مستند HTML عن طريق استبدال سلسلة القالب htmfiles هو الدليل الذي يتم تخزين الملفات الثابتة فيه.
cnt = cnt + 1 'العداد زائد 1
start = start + 1 'زيادات متغيرة للمؤشر
rs.movenext
com.wind
إذا لم يكن rs.eof ثم قم بإجراء الجولة التالية من الطلبات عن طريق التحديث وتمرير متغير المؤشر إلى الجولة التالية
Response.write <meta http-equiv='refresh' content='0;URL=?start=&start&'>
آخر
اكتمل إنشاء Response.write لملف HTML!
انتهي إذا
رس.إغلاق ()
سيترز = لا شيء
objConn.Close()
تعيين objConn = لا شيء
وظيفة getTemplate(template)' لقراءة القالب وإرجاع سلسلة والقالب هو اسم الملف
خافت fso، f
تعيين fso=CreateObject(Scripting.FileSystemObject)
تعيين و = fso.OpenTextFile (قالب)
getTemplate=f.ReadAll
f. إغلاق
تعيين و = لا شيء
تعيين fso=لا شيء
وظيفة النهاية
يكتب Sub genHtml(content,filename)' المحتوى المستبدل في مستند HTML، والمحتوى هو السلسلة المستبدلة، واسم الملف هو اسم الملف الذي تم إنشاؤه.
خافت fso، f
تعيين fso = Server.CreateObject(Scripting.FileSystemObject)
Set f = fso.CreateTextFile(filename,true)'إذا تكرر اسم الملف، فسيتم الكتابة فوق الملف القديم
و. كتابة المحتوى
و. إغلاق
تعيين و = لا شيء
تعيين fso=لا شيء
نهاية الفرعية
%>