Недавно на веб-сайте друга возникла необходимость создать статический веб-сайт, но иногда при создании статики возникают проблемы. Мы собрали несколько методов, и вы можете выбрать их в соответствии с потребностями вашего веб-сайта. 1. Два простых метода создания статических домашних страниц в ASP.
Зачем создавать статическую домашнюю страницу?
1. Если ваша домашняя страница много читает базу данных, скорость очень низкая и она занимает много ресурсов сервера. Конечно, при использовании статической скорости доступа к страницам гораздо быстрее.
2. Легко найти поисковыми системами.
3. Если с программой возникнут проблемы, можно получить доступ к домашней странице.
4. Других слишком много, подумайте сами :)
Метод применения:
Если ваша домашняя страница — index.asp, вы можете создать index.htm (последовательность доступа по умолчанию должна быть index.htm, index.asp). Таким образом, когда посетитель впервые посещает ваш сайт, он открывает index.htm. Вы можете сделать ссылку на главной странице сайта в index.asp, чтобы при нажатии на ссылку на главной странице с любой страницы сайта появлялся index.asp. Это обеспечивает своевременность обновления информации (ведь. , index.htm необходимо каждый раз обновлять вручную).
Способ первый:
Непосредственно включите файл домашней страницы в текстовое поле формы, отправьте код домашней страницы в виде данных, а затем создайте статическую страницу.
Код выглядит следующим образом:
Скопируйте код кода следующим образом:
<%
'------------------------------------------------ - ---------
'Использовать отправку формы для генерации кода для статической домашней страницы
«Убедитесь, что ваше пространство поддерживает FSO и на главной странице меньше кода.
'------------------------------------------------ - ---------
тусклый контент
content=Trim(Request.Form(content))
если содержимое<> тогда
вызовите makeindex()
конец, если
суб makeindex()
Установите Fso = Server.CreateObject(Scripting.FileSystemObject)
Filen=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>
<br>
<тип ввода=имя отправки=Отправить значение=Отправить>
</форма>
недостаток:
1. Если домашняя страница содержит тег <@ ..>, появится сообщение об ошибке.
2. Если код домашней страницы слишком длинный, его нельзя отправить с помощью формы (существует определенное ограничение на длину данных формы).
Решение:
1. Удалите тег <@ > в index.asp.
2. Используйте eWebEditor для отправки и поддержки больших данных (можно автоматически сегментировать)
преимущество:
Контент можно изменять в режиме реального времени по мере его создания.
Способ второй:
Непосредственно используйте XMLHTTP для получения кода index.asp.
Скопируйте код кода следующим образом:
<%
'------------------------------------------------ - ---------
'Используйте XMLHTTP для создания кода статической домашней страницы
«Curl — это адрес вашей домашней страницы. Убедитесь, что ваше пространство поддерживает FSO.
'------------------------------------------------ - ---------
тусклое чтение, Curl, содержимое
Curl=http://www.xx0123.com/index.asp
чтение = getHTTPage (Curl)
если читать<> то
содержание = читать
вызовите makeindex()
конец, если
суб makeindex()
Установите Fso = Server.CreateObject(Scripting.FileSystemObject)
Filen=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 GET, URL, ложь
HTTP.send()
если Http.readystate<>4, то
функция выхода
конец, если
getHTTPPage=bytesToBSTR(Http.responseBody,GB2312)
установить http=ничего
если err.number<>0, то err.Clear
Конечная функция
Функция BytesToBstr(body,Cset)
тусклый объектный поток
установить objstream = Server.CreateObject(adodb.stream)
objstream.Type = 1
objstream.Mode =3
objstream.Открыть
objstream.Напишите тело
objstream.Position = 0
objstream.Type = 2
objstream.Charset = Cset
BytesToBstr = objstream.ReadText
objstream.Close
установить objstream = ничего
Конечная функция
%>
2. Разделение шаблонов и создание пакетов
Содержимое, которое необходимо заменить в файле шаблона, заключено в {...}
Чтобы добиться простоты, код обработки ошибок был удален (заменяемый строковый параметр в replace не может иметь нулевое значение, и, конечно, fso также должна выполнять проверку ошибок).
Скопируйте код кода следующим образом:
<%
'------------------------------------------------ - -------------------------------------------------- -- -----------------
' От: Кевин Фанг http://www.yaotong.cn
Автор: Кевин Фанг. Идентификатор Лаггарда: kevin2008. Пожалуйста, сохраните его при перепечатке.
' Время: первый выпуск Laggard Forum 2006/07/05
'------------------------------------------------ - -------------------------------------------------- -- ------------------
Dim start 'Эта переменная представляет собой позицию набора записей, на которую будет указывать указатель, динамически полученную с помощью параметров.
Dim Template 'Файл шаблона прочитает эту переменную в строку
Dim content 'Заменена строковая переменная
Dim objConn 'Объект соединения
Dim ConnStr 'Строка подключения
Оператор запроса Dim sql
Dim cnt:cnt = 1 'Инициализировать счетчик цикла этого цикла
start = request(start) 'Получаем начальную позицию текущего указателя раунда
Если IsNumeric(start) Тогда start = CLng(start) Иначе start=1
Если start=0 Тогда start = 1 'Если start
ConnStr = Поставщик = Microsoft.Jet.OLEDB.4.0; Источник данных = & Server.MapPath(DataBase.mdb)
sql = выбрать * из имя_таблицы
Установите objConn = Server.CreateObject(ADODB.Connection)
objConn.Open ConnStr
установите rs = Server.CreateObject(ADODB.Recordset)
rs.open sql,objConn,1,1 'Открываем набор данных
rs.AbsolutePosition = start 'Самый важный шаг — указать указатель на начало, который динамически получается с помощью параметров
Template = getTemplate(Server.MapPath(template.html))' template.html — это файл шаблона, а строка считывается с помощью функции getTemplate. Заменяемое содержимое в файле шаблона заключено в {...}.
В то время как Not rs.eof И cnt<= 500 '500 устанавливает количество циклов запроса на создание страницы. Измените его в соответствии с реальной ситуацией. Если оно слишком велико, при их большом количестве произойдет ошибка тайм-аута. наборы рекордов.
content = replace(Template,{filed_name_1},rs(filed_name_1)) 'Заменить содержимое шаблона значением поля
контент = Заменить(содержание,{имя_файла_2},rs(имя_файла_2))
...
контент = Заменить(содержание,{имя_файла_n},rs(имя_файла_n))
genHtml content,Server.MapPath(htmfiles/&rs(id)&.html) 'Создать HTML-документ, заменив строку шаблона. htmfiles — это каталог, в котором хранятся статические файлы. Создайте его вручную.
cnt = cnt + 1 'Счетчик плюс 1
start = start + 1 'Увеличение переменной указателя
rs.movenext
идти
Если не rs.eof, то «Выполните следующий раунд запросов, обновив и передав переменную-указатель начала следующего раунда».
response.write <meta http-equiv='refresh' content='0;URL=?start=&start&'>
Еще
Генерация HTML-файла response.write завершена!
Конец, если
rs.Close()
Setrs=Ничего
objConn.Close()
Установить objConn = Ничего
Функция getTemplate(template)' для чтения шаблона, возврата строки, шаблон — это имя файла.
Дим fso,f
установите fso=CreateObject(Scripting.FileSystemObject)
установите f = 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)'Если имя файла повторяется, старый файл будет перезаписан
е. Написание контента
е.Закрыть
Установить f = Ничего
установить fso=Ничего
Конец субтитра
%>