Recentemente, o site de um amigo precisou gerar um site estático, mas às vezes haverá problemas ao gerar estático. Compilamos alguns métodos e você pode escolher de acordo com as necessidades do seu site. 1. Dois métodos simples para gerar páginas iniciais estáticas em ASP
Por que gerar uma página inicial estática?
1. Se a sua página inicial lê muito o banco de dados, a velocidade é muito lenta e consome muitos recursos do servidor. Claro, usar a velocidade de acesso à página estática é muito mais rápido
2. Facilmente encontrado pelos motores de busca
3. Se houver algum problema com o programa, a página inicial poderá ser acessada.
4. Existem muitos outros, pense você mesmo :)
Método de aplicação:
Se sua página inicial for index.asp, você poderá gerar index.htm (a sequência de acesso padrão deve ser index.htm, index.asp). Desta forma, quando um visitante visita o seu site pela primeira vez, ele abre index.htm. Você pode fazer o link da página inicial do site em index.asp, para que ao clicar no link da página inicial de qualquer página do site, index.asp apareça. , index.htm precisa ser atualizado manualmente sempre).
Método um:
Inclua diretamente o arquivo da página inicial na caixa de texto do formulário, envie o código da página inicial como dados e gere uma página estática.
O código é o seguinte:
Copie o código do código da seguinte forma:
<%
'------------------------------------------------ - ---------
'Use o envio do formulário para gerar código para a página inicial estática
'Certifique-se de que seu espaço suporte FSO e tenha menos conteúdo de código na página inicial
'------------------------------------------------ - ---------
escurecer conteúdo
content=Trim(Request.Form(conteúdo))
se conteúdo<> então
chamar makeindex()
terminar se
sub makeindex()
Definir Fso = Server.CreateObject(Scripting.FileSystemObject)
Arquivo=Server.MapPath(index.htm)
Definir Site_Config = FSO.CreateTextFile (Arquivo, verdadeiro, Falso)
Site_Config.Escrever conteúdo
Site_Config.Fechar
Definir Fso = Nada
Response.Write(<script>alert('A página inicial foi gerada com sucesso!')</script>)
final sub
%>
<nome do formulário=form1 método=post action=>
<nome da área de texto=conteúdo>
<!-- #i nclude file=index.asp -->
</textarea>
<br>
<tipo de entrada=nome de envio=Valor de envio=Enviar>
</form>
deficiência:
1. Se a página inicial incluir a tag <@ ..>, um erro será exibido.
2. Se o código da página inicial for muito longo, não poderá ser enviado por meio de um formulário (há um certo limite no comprimento dos dados do formulário).
Solução:
1. Remova a tag <@ > em index.asp
2. Use o eWebEditor para enviar e oferecer suporte a big data (pode ser segmentado automaticamente)
vantagem:
O conteúdo pode ser modificado em tempo real à medida que é gerado.
Método dois:
Use XMLHTTP diretamente para obter o código de index.asp
Copie o código do código da seguinte forma:
<%
'------------------------------------------------ - ---------
'Use XMLHTTP para gerar código estático da página inicial
'Curl é o endereço da sua página inicial, certifique-se de que seu espaço suporta FSO
'------------------------------------------------ - ---------
esmaecer leitura, Curl, conteúdo
Curl = http://www.xx0123.com/index.asp
read=getHTTPage(Curl)
se lido<> então
conteúdo=ler
chamar makeindex()
terminar se
sub makeindex()
Definir Fso = Server.CreateObject(Scripting.FileSystemObject)
Arquivo=Server.MapPath(index.htm)
Definir Site_Config = FSO.CreateTextFile (Arquivo, verdadeiro, Falso)
Site_Config.Escrever conteúdo
Site_Config.Fechar
Definir Fso = Nada
Response.Write(<script>alert('A página inicial foi gerada com sucesso!')</script>)
final sub
Função getHTTPPage(url)
escurecer http
definir http=Server.createobject(Microsoft.XMLHTTP)
Http.open GET,url,falso
http.send()
se Http.readystate<>4 então
função de saída
terminar se
getHTTPPage=bytesToBSTR(Http.responseBody,GB2312)
definir http = nada
se err.número<>0 então err.Clear
Função final
Função BytesToBstr(corpo,Cset)
escurecer objstream
definir objstream = Server.CreateObject (adodb.stream)
objstream.Type = 1
objstream.Modo =3
objstream.Open
objstream.Escrever corpo
objstream.Posição = 0
objstream.Type = 2
objstream.Charset = Cset
BytesToBstr = objstream.ReadText
objstream.Fechar
definir objstream = nada
Função final
%>
2. Separação de modelos e geração de lote
O conteúdo a ser substituído no arquivo de modelo está entre {...}
Para buscar simplicidade, o código de tratamento de erros foi removido (o parâmetro string a ser substituído em replace não pode ser um valor nulo e, claro, fso também deve fazer a verificação de erros).
Copie o código do código da seguinte forma:
<%
'------------------------------------------------ - ------------------------------------------------- - -----------------
' De: Kevin Fung http://www.yaotong.cn
' Autor: kevin fung Laggard ID: kevin2008, mantenha-o como está ao reimprimir
' Hora: 05/07/2006 primeiro lançamento do Laggard Forum
'------------------------------------------------ - ------------------------------------------------- - ------------------
Dim start 'Esta variável é a posição do conjunto de registros para onde o ponteiro apontará, obtida dinamicamente através de parâmetros
Dim Template 'O arquivo de modelo irá ler esta variável em uma string
Dim content 'Variável de string substituída
Dim objConn 'Objeto de conexão
Dim ConnStr 'Sequência de conexão
Instrução de consulta Dim sql
Dim cnt:cnt = 1 'Inicializa o contador de loop deste ciclo
start = request(start) 'Obtém a posição inicial do ponteiro redondo atual
If IsNumeric(start) Then start = CLng(start) Else start=1
Se início=0 Então início = 1 'Se início
ConnStr = Provedor = Microsoft.Jet.OLEDB.4.0;Fonte de dados = & Server.MapPath(DataBase.mdb)
sql = selecione * do nome_da_tabela
Definir objConn = Server.CreateObject(ADODB.Connection)
objConn.Open ConnStr
definir rs = Server.CreateObject (ADODB.Recordset)
rs.open sql,objConn,1,1 'Abre o conjunto de dados
rs.AbsolutePosition = start 'O passo mais crítico é apontar o ponteiro para iniciar, que é obtido dinamicamente através de parâmetros
Template = getTemplate(Server.MapPath(template.html))' template.html é um arquivo de modelo e a string é lida por meio da função getTemplate. O conteúdo a ser substituído no arquivo de modelo é colocado entre {...}.
Enquanto Not rs.eof And cnt<= 500 '500 é para definir o número de ciclos para uma solicitação gerar uma página, modifique-o de acordo com a situação real. Se for muito alto, ocorrerá um erro de tempo limite quando houver muitos. conjuntos de registros.
content = Replace(Template,{filed_name_1},rs(filed_name_1)) 'Substitua o conteúdo do modelo pelo valor do campo
conteúdo = Substituir(conteúdo,{nome_do_arquivado_2},rs(nome_do_arquivado_2))
...
conteúdo = Substituir(conteúdo,{nome_arquivado_n},rs(nome_arquivado_n))
genHtml content,Server.MapPath(htmfiles/&rs(id)&.html) 'Gere o documento HTML substituindo a string do modelo. htmfiles é o diretório onde os arquivos estáticos são armazenados.
cnt = cnt + 1 'Contador mais 1
start = start + 1 'Incrementos da variável do ponteiro
rs.movnext
vamos
If Not rs.eof Then 'Faça a próxima rodada de solicitações atualizando e passe a variável ponteiro para iniciar a próxima rodada
resposta.write <meta http-equiv='refresh' content='0;URL=?start=&start&'>
Outro
A geração de response.write do arquivo HTML foi concluída!
Terminar se
rs.Fechar()
Setrs=Nada
objConn.Fechar()
Definir objConn = Nada
Função getTemplate(template)' função para ler o template, retornar uma string, template é o nome do arquivo
Dim fso,f
definir fso=CreateObject(Scripting.FileSystemObject)
definir f = fso.OpenTextFile (modelo)
getTemplate=f.ReadAll
f.fechar
definir f = nada
definir fso=Nada
Função final
Sub genHtml(content,filename)' grava o conteúdo substituído no documento HTML, content é a string substituída e filename é o nome do arquivo gerado.
Dim fso,f
Definir fso = Server.CreateObject(Scripting.FileSystemObject)
Set f = fso.CreateTextFile(filename,true)'Se o nome do arquivo for repetido, o arquivo antigo será substituído
f.Escrever conteúdo
f.Fechar
Definir f = Nada
definir fso=Nada
Finalizar sub
%>