Сегодня совершенно бесплатно! Разработка двух последних сайтов дала мне много новых идей! Я тоже прочитал много отличных кодов, но ни разу не нашел подходящего мне паттерна! Опираясь на конструкцию кэша, я, кажется, нашел более удобный способ мышления. На самом деле, статические страницы здесь не являются статическими в истинном смысле этого слова, но они могут достичь эффективности синтаксического анализа статических страниц. Они не тестировались проектом и публикуются здесь.
<%
'Источник статьи: http://www.devjs.com
Const DEVJS_INDEX=index.htmlConst INDEX_DEFAULT_INTERVAL=300Dim sLastUpdate использует Application для сохранения времени последнего обновления и выносит суждения о странице, создавая страницу каждые 300 секунд (5 минут). sLastUpdate=Application(INDEX_LAST_Update)If sLastUpdate= или DateDiff(s,sLastUpdate,now())>INDEX_DEFAULT_INTERVAL Затем 'Вызовите MakeIndex(), чтобы сгенерировать страницу и изменить время последнего обновления MakeIndex() sLastUpdate=Now() Application(INDEX_LAST_Update)=sLastUpdate Response.Write превышает время по умолчанию и обновляется в & sLastUpdateElse Response.Write считывает статическую страницу, обновленную в & sLastUpdateEnd IfResponse.Write LoadTextFile(Server.MapPath(DEVJS_INDEX),GB2312) Функция MakeIndex() sContent=<hr> & Now() Вызов SaveTextFile(Server.MapPath(DEVJS_INDEX),GB2312,sContent)End Function%>
Если срок действия истек, обновите страницу. Если срок действия не истек, вызовите статическую страницу напрямую. Здесь также используются две функции. Вставьте их вместе. Обратите внимание, что SaveTextFile() написан в методе перезаписи.
Это предложение oStream.SaveToFile sFilePath,2
<%Function LoadTextFile(sFilePath,sCharset) Dim oStream Set oStream=Server.CreateObject(ADODB.Stream) oStream.Type=2 oStream.Mode=3 oStream.Open oStream.Charset=sCharset oStream.Position=oStream.Size oStream.LoadFromFile sFilePath LoadTextFile=oStream.ReadText oStream.Close Set oStream=NothingEnd Функция Функция SaveTextFile(sFilePath,sCharset,outString) SaveFile=false Dim oStream Set oStream = Server.CreateObject(ADODB.Stream) oStream.Type=2 oStream.Mode=3 oStream.Open oStream.Charset=sCharset oStream.WriteText = outString oStream.SaveToFile sFilePath,2 oStream.Close Set oStream = Ничего SaveTextFile=trueEnd Function%>
Это менее хлопотно, чем кэширование, и гораздо проще! Фактически, с помощью MakeIndex() можно делать множество вещей, например читать файлы шаблонов и заменять их.