Я впервые пишу статью в CSDN. Мой литературный талант и теоретические знания ограничены. Если я пишу неправильно, я приветствую исправления. Фактически, в Интернете уже есть много статей о генерации HTML ASP. Одним из методов является метод генерации ASP+XML, хотя одним из преимуществ является то, что вы можете напрямую ссылаться на исходный исходный код генерируемой страницы, не создавая шаблон. программу, но я протестировал этот метод. На тот момент я обнаружил, что ее стабильность плохая, а требования к скорости сети высокие (конечно, этого не было на сервере). Особенно в виртуальном пространстве часто выскакивают ошибки. Возможно, это связано с моей недостаточной обработкой кода в этом методе. Короче говоря, в этой статье используется другой широко используемый метод ASP+FSO. Платформа также используется здесь для сокращения времени генерации при обработке большого количества страниц. Этот метод предназначен для некоторых файлов ASP с большими объемами страниц.
Здесь я привожу простой пример: (электронная коммерция в сфере путешествий) статические страницы (htm) гостиничных приложений в крупных городах страны отображаются на странице
1. Системная среда приложения: win2000+ASP+MSSQL/ACCESS (база данных по сути не имеет значения). +iis5.0
2.1 списки городов (CityHtml): включая три поля, определяющие статические имена в формате HTML (идентификатор города (автоматический номер), название города (CityName, например Пекин), сгенерированное имя префикса HTML (HtmlStartName, например, Пекин))
3.1 национальные списки отелей (Отель): Здесь я создаю только три поля (идентификатор отеля (автоматический номер), название города (City), название отеля (HotelName)) для облегчения ссылки на экземпляр.
4.1 Страницы ASP (ToHtm.asp) (используются для создания htm)
5.1 Страницы цикла цикла (IframeToHtm.asp), платформа приложения для пакетного создания htm
Ниже приведен исходный код двух страниц
цикла цикла для пакетного создания страниц: IFrameToHtm. .asp
< !--#include file="conn.asp"-->'Подключиться к базе данных
<%
димрс, sql, j
set rs=Server.CreateObject("adodb.recordset")
sql="select * from CityHtml"'Открыть список городов по всей стране
rs.open sql,conn,1,1
делать, пока rs.eof' не пройдет через крупные города%>
<!--Следующая платформа приложения открывает сгенерированную страницу ToHtml -->
<IFRame name="LoadRcHtm<%=j%>"frameborder=0 ширина=100% высота=30 прокрутка=no src="ToHtml.asp?City=<%=cstr(rs("city"))%>&HtmlStartName =<%=rs("HtmlStart")%>"></IFrame>
<%rs.movenext
Loop%>
Создать страницу программы: ToHtm.asp Вероятно, я напишу комментарий в исходном коде **
<!--#include file="conn.asp"-->'файл подключения к данным
<%
При ошибке Возобновить Далее'Обработка отказоустойчивости
Определение Dim City заставляет город генерировать страницу.
City=Request.Querystring("City")' Получает сгенерированное значение городского отеля, переданное из платформы, которое будет представлено позже.
HtmlStartName=Request.Querystring("HtmlStartName")'Получите сгенерированный префикс имени HTML-файла.
Тускните строку поиска sql'а, здесь я открою таблицу напрямую без поиска переменных, просто напишите сами условия поиска.
sql="select * from Hotel, где [City] = '" & City & "' "
Объект операции с данными Dim oRs
Dim PageCounts'Чтобы реализовать генерацию подкачки, вы должны знать, сколько страниц имеется
Установите oRs = Server.CreateObject("ADODB.Recordset")
oRs.Open Sql,oConn,1,1'Найдите таблицу, которая открывает отель, равный переменной City
oRs.pagesize=10'Десять записей составляют одну страницу
PageCounts=oRs.pagecount', чтобы узнать, сколько страниц нужно сгенерировать, используйте его в цикле для генерации
Dim fs' определяет объект файла fso
Dimfolders — имя папки, в которой хранятся статические страницы.
Dim Filestart' определяет префикс для создания файлов HTM.
Set fs=Server.CreateObject("Scripting.FileSystemObject")
Дим я
for i=1 to PageCounts' начинает генерировать страницы в цикле, то есть генерируется подкачка.
страница=я
oRs.absolutepage=номер i'страницы
rowcount=oRs.pagesize'Количество записей на текущей странице
папки=server.mappath("CityHtml")
if (fs.FolderExists(folders)) then' определяет, существует ли папка
еще
fs.CreateFolder(folders)' создает папку CityHtml, если она не существует.
конец, если
если я=1 тогда
Filestart=HtmlStartName'Если это первая страница, определите имя файла и передайте имя значения. Например, beijing — beijing.htm.
еще
Filestart=HtmlStartName&i'Если вторая страница beijing+1, например, если страниц две, i равно 2, то это beijing2.htm и так далее...(в конце добавляется суффикс .htm)
конец, если
Dim files' определяет переменную имени сгенерированного текстового файла.
Dim filez'define переменная имени пути к файлу
files=Filestart&.txt"'имя этого файла
filez=folders&""&"путь к текстовому файлу файлов
'Удалить файлы
Dim checkfile' проверяет, существует ли текстовый файл, если да, то удалите его.
checkfile=server.mappath("CityHtml"&Filestart&".htm")'Проверьте, существует ли уже файл htm, если да, удалите его.
if (fs.FileExists(checkfile)) then'Проверьте, существует ли уже файл htm, если да, удалите его
Dim df'define файловый объект *удалить файл с помощью*
Set df=fs.GetFile(checkfile)' определяет файл, который нужно удалить
df.delete' удалить файл
конец, если'конец суда
Dim ts' определяет объект записи файла
set ts = fs.createtextfile(filez,true) 'Включить запись содержимого файла**Я просто пишу название отеля и отображение статического номера в тексте**
ts.write("<Html><Head><Title>Generate"&City&"City Hotel</Title>"&vbcrlf)' После этого необходимо сгенерировать содержимое основного файла и использовать Response.write
ts.write("<META http-equiv=Content-Type content=text/html; charset=gb2312>"&vbcrlf)
ts.write("<meta name=keywords content="&city&"hotel>"&vbcrlf)
ts.write("<link href='/Style/style.css' rel='stylesheet' type='text/css'></head><body topmargin=0>"&vbcrlf)
ts.Write("<ШИРИНА ТАБЛИЦЫ=760 cellpacing=0 cellpadding=0 align=center>"&vbcrlf&_
"<TR><TD width='100%'>"&vbcrlf)
'Начать постраничный вывод
«Я не буду здесь вдаваться в подробности принципа работы программы цифрового пейджинга. Друзья, которые не понимают, могут поискать ее в Интернете.
Тусклая текущая страница страницы
Dim Page2'Цифровая переменная подкачки
Цифровая переменная нумерации страниц Dims
если страница=1, то
ts.write ("[Главная] [Предыдущая страница]")
еще
ts.write (" <a href="&HtmlStartName&".htm"&" class=blue>[Home]</a> <a href="&HtmlStartName&Replace(page-1,1,"")&.htm"& " class=blue>Предыдущая страница</a> ")
конец, если
страница2=(страница-(модификация страницы 10))/10
если страница2<1, то страница2=0
от s=страница2*10-1 до страницы2*10+10
если s>0, то
если s=cint(страница), то
ts.write (" <font color='#000000'>["& s & "]</font>")
еще
если s=1, то
ts.write (" <a href="&HtmlStartName&replace(s,1,"")&".htm"&" class=blue>["& s &"]</a>")
еще
ts.write (" <a href="&HtmlStartName&s&".htm"&" class=blue>["& s &"]</a>")
конец, если
конец, если
если s=ors.pagecount тогда
выход для
конец, если
конец, если
следующий
если cint(page)=ors.pagecount тогда
ts.write ("[следующая страница] [последняя страница]")
еще
ts.write (" <a href="&HtmlStartName&page+1&".htm"&" class=blue>[следующая страница]</a> <a href="&HtmlStartName&ors.pagecount&".htm"&" class=blue> [ Последняя страница]</a>")
конец, если
ts.write("</TD></TR>")
'Конец вывода страницы
do while not ors.eof и rowcount>0 'Вывести название отеля
ts.write("<TR><TD width='100%'>"&oRs.Fields("Chinese_Name")&"</TD></TR>"&vbcrlf)
oRs.movenext
rowcount=rowcount-1'Когда количество записей на странице равно -1 циклу
ts.write("</Table></body></html>"&vbcrlf)
ц.закрыть
set ts=nothing 'Освободить объект
Dim EditFile' определяет перезапись переменных файла.
Set EditFile = fs.GetFile(filez)'Установить объект перезаписи файла
EditFile.name= left(EditFile.name,len(EditFile.name)-4)&".htm" 'Переписываем текстовый файл в htm
генерация цикла next завершается (генерация подкачки)
set EditFile=nothing 'Освободить объект
установите fs=nothing'освободите объект
if err.number<>0 then 'Обработка сгенерированных ошибок
Response.write(City&"Произошла неизвестная ошибка при обновлении <A href=ToHtml.asp?City="&City&"&HtmlName="&HtmlStartName&">Повторное обновление</A>")
еще
Response.Write(Город&"Обновление отеля завершено"&Сейчас())
конец, если
%>