CSDN에 글을 쓰는 것은 이번이 처음입니다. 저의 문학적 재능과 이론적 지식이 제한되어 있으므로 잘못 작성하면 수정을 환영합니다. 실제로 인터넷에는 이미 HTML을 생성하는 ASP에 대한 기사가 많이 있습니다. 한 가지 방법은 ASP+XML 생성 방법이지만, 템플릿을 작성하지 않고도 생성할 페이지의 원본 소스 코드를 직접 참조할 수 있다는 장점이 있습니다. 프로그램이지만 이 방법을 테스트해 본 결과 안정성이 좋지 않고 네트워크 속도 요구 사항도 높았습니다(물론 서버에는 없었습니다). 특히 가상공간에서는 이 방법으로 코드 처리가 부족해서 오류가 자주 발생합니다. 간단히 말해서 이 기사에서는 일반적으로 사용되는 또 다른 방법인 ASP+FSO를 사용합니다. 이 방법은 대량의 페이징을 처리할 때 생성 시간을 줄이기 위해 사용됩니다.
여기에 간단한 예를 인용합니다. 전국 주요 도시의 (여행 전자 상거래) 호텔 애플리케이션 정적 페이지(htm)가 페이징
1에 표시됩니다. 애플리케이션 시스템 환경: win2000+ASP+MSSQL/ACCESS(데이터베이스는 기본적으로 관련이 없습니다.) +iis5.0
2.1 도시 목록(CityHtml): 정적 HTML 이름(도시 ID(자동 번호), 도시 이름(베이징과 같은 CityName), 생성된 HTML 접두사 이름(베이징과 같은 HtmlStartName))을 정의하는 세 개의 필드 포함
3.1 국가 호텔 목록 ( 호텔): 여기서는 인스턴스에 대한 참조를 용이하게 하기 위해 3개의 필드(호텔 ID(자동 번호), 도시 이름(City), 호텔 이름(HotelName))만 생성합니다.
4.1 ASP 페이지(ToHtm.asp)(htm 생성에 사용)
5.1 루프 프레임 페이지(IframeToHtm.asp), htm 일괄 생성을 위한 애플리케이션 프레임워크
다음은
페이지 일괄 생성을 위한 루프 프레임 두 페이지의 소스 코드입니다. .asp
< !--#include file="conn.asp"-->'데이터베이스에 연결
<%
디머,SQL,j
rs=Server.CreateObject("adodb.recordset")를 설정합니다.
sql="select * from CityHtml"'전국 도시 목록 열기
rs.open SQL,콘,1,1
rs.eof'가 주요 도시를 순환할 때까지 수행%>
<!--다음 애플리케이션 프레임워크는 ToHtml 생성 페이지를 엽니다-->
<IFRame name="LoadRcHtm<%=j%>"frameborder=0 width=100% height=30 scrolling=no src="ToHtml.asp?City=<%=cstr(rs("city"))%>&HtmlStartName =<%=rs("HtmlStart")%>"></IFrame>
<%rs.movenext
loop%>
프로그램 페이지 생성: ToHtm.asp 아마도 소스 코드에 주석을 적을 것입니다 **
<!--#include file="conn.asp"-->'데이터 연결 파일
<%
On Error Resume Next'내결함성 처리
Dim City' 정의는 도시가 페이지를 생성하도록 합니다.
City=Request.Querystring("City")' 나중에 소개할 프레임워크에서 생성된 도시 호텔 값을 전달받습니다.
HtmlStartName=Request.Querystring("HtmlStartName")'생성된 HTML 파일 이름 접두사 가져오기
Dim sql' 검색 문자열, 여기서는 변수 검색 없이 테이블을 직접 열겠습니다. 검색 조건을 직접 작성하면 됩니다.
sql="select * [도시] = '" & 도시 & "' "인 호텔에서 선택
Dim oR의 데이터 작업 개체
Dim PageCounts'페이징 생성을 구현하려면 페이지 수를 알아야 합니다.
oRs = Server.CreateObject("ADODB.Recordset") 설정
oRs.Open Sql,oConn,1,1'City 변수와 동일한 호텔을 여는 테이블을 찾습니다.
oRs.pagesize=10'10개의 레코드가 한 페이지입니다
PageCounts=oRs.pagecount' 생성할 페이지 수를 가져오려면 루프에서 사용하여 생성하세요.
Dim fs'는 fso 파일 객체를 정의합니다.
Dim 폴더'는 정적 페이지가 저장되는 폴더의 이름입니다.
Dim Filestart'는 htm 파일 생성을 위한 접두사를 정의합니다.
fs=Server.CreateObject("Scripting.FileSystemObject")를 설정합니다.
나는 어둡다
for i=1 to PageCounts'는 루프에서 페이지를 생성하기 시작합니다. 즉, 페이징이 생성됩니다.
페이지=i
oRs.absolutepage=i'페이지 번호
rowcount=oRs.pagesize'현재 페이지의 레코드 수
폴더=server.mappath("CityHtml")
if (fs.FolderExists(folders)) then' 폴더가 존재하는지 확인합니다.
또 다른
fs.CreateFolder(folders)'는 CityHtml 폴더가 없는 경우 생성합니다.
종료하면
i=1이면
Filestart=HtmlStartName'첫 번째 페이지인 경우 파일 이름을 정의하고 값 이름을 전달합니다. 예를 들어 beijing은 beijing.htm입니다.
또 다른
Filestart=HtmlStartName&i'두 번째 페이지가 beijing+1인 경우, 예를 들어 두 개의 페이지가 있는 경우 i는 2, beijing2.htm 등이 됩니다...(끝에 .htm 접미사가 추가됩니다)
종료하면
Dim 파일'은 생성된 텍스트 파일 이름 변수를 정의합니다.
Dim filez'define 파일 경로 이름 변수
files=Filestart&".txt"'이 파일의 이름
filez=folders&""&"files' 텍스트 파일 경로
'파일 삭제
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' 파일 삭제
end if'end 판단
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&"호텔>"&vbcrlf)
ts.write("<link href='/Style/style.css' rel='stylesheet' type='text/css'></head><body topmargin=0>"&vbcrlf)
ts.Write("<TABLE WIDTH=760 셀 간격=0 셀 패딩=0 정렬=중앙>"&vbcrlf&_
"<TR><TD 너비='100%'>"&vbcrlf)
'페이징 출력 시작
'여기에서는 디지털 호출 프로그램의 원리에 대해 자세히 설명하지 않겠습니다. 이해하지 못하는 친구들은 인터넷에서 검색할 수 있습니다.
희미한 페이지' 현재 페이지
Dim Page2'디지털 페이징 변수
Dim s의 디지털 페이지 매김 변수
페이지=1이면
ts.write (" [홈] [이전 페이지] ")
또 다른
ts.write (" <a href="&HtmlStartName&".htm"&" class=blue>[홈]</a> <a href="&HtmlStartName&Replace(page-1,1,"")&".htm"& " class=blue>이전 페이지</a> ")
종료하면
page2=(페이지-(페이지 모드 10))/10
page2<1이면 page2=0인 경우
s=page2*10-1 ~ page2*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 and rowcount>0 '호텔 이름 출력
ts.write("<TR><TD width='100%'>"&oRs.Fields("중국어_이름")&"</TD></TR>"&vbcrlf)
oRs.movenext
rowcount=rowcount-1'페이지의 레코드 수가 -1 루프인 경우
ts.write("</Table></body></html>"&vbcrlf)
ts.닫기
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(도시&"호텔 업데이트 완료"&Now())
종료하면
%>