منذ بعض الوقت، كانت هناك صفحة ASP بطيئة جدًا في التنفيذ، وكان بها الكثير من الزوار، ولم يتم تعديلها كثيرًا، وكنت كسولًا جدًا لجعلها ثابتة بشكل مباشر، وكان علي تنزيلها من الخادم في كل مرة للتغيير لذلك كان علي أن أجد طريقة لتحويل صفحة ASP إلى صفحة ثابتة. . .
لقد رأيت مقالات مثل هذه من قبل، لكنني لم أهتم بها كثيرًا، وكان من الصعب العثور على مقال مناسب عندما أردت حقًا استخدامه، لذلك بحثت في الإنترنت لفترة طويلة ووجدت أخيرًا مقالًا أكثر ملاءمة. الكود وأضفت تعديلاتي الخاصة كالتالي:
<%
وظيفة GetPage(url)
'الحصول على محتوى الملف
استرجاع خافت
تعيين الاسترداد = CreateObject("Microsoft.XMLHTTP")
مع الاسترجاع
.افتح "الحصول على"، عنوان url، خطأ '، ""، ""
.يرسل
GetPage = BytesToBstr(.ResponseBody)
نهاية مع
تعيين الاسترجاع = لا شيء
وظيفة النهاية
BytesToBstr(body)
objstream خافت
تعيين objstream = Server.CreateObject("adodb.stream")
objstream.Type = 1
objstream.Mode =3
objstream.Open
objstream.اكتب النص
objstream.Position = 0
objstream.Type = 2
objstream.Charset = "GB2312"
BytesToBstr = objstream.ReadText
objstream.Close
تعيين objstream = لا شيء
إنهاء الوظيفة
عند استئناف الخطأ بعد ذلك
Url=" http://www.sina.com.cn"' عنوان الصفحة المراد قراءتها
Response.write "ابدأ بتحديث الصفحة الرئيسية..."
wstr = GetPage(Url)
'response.write(wstr)
قم بتعيين fs=Server.CreateObject("Scripting.FileSystemObject")
'إذا لم يكن MyFile.FolderExists(server.MapPath("/html/")) ثم
'MyFile.CreateFolder(server.MapPath("/html/"))'
'end if
' عنوان الصفحة المراد تخزينها
dizhi=server.MapPath("index.htm")
إذا (fs.FileExists(dizhi)) ثم
fs.DeleteFile(dizhi)
إنهاء إذا
تم تعيين CrFi=fs.CreateTextFile(dizhi)
Crfi.Writeline(wstr)
setCrFi=لا شيء
تعيين خ = لا شيء
Response.write "...<font color=red>اكتمل التحديث!</font>"
%>
الكود هو الأبسط ويمكن حفظه مباشرة في ملف asp. ما عليك سوى تعيين عنوان URL (عنوان asp المراد تحويله) وdizhi (عنوان html المراد حفظه). عندها فقط يمكننا التأكد من عمل الصور وCSS وJS.
آمل أن يكون مفيدًا لهؤلاء الأصدقاء الذين يبحثون عن asp->htm.