«

»

Sep 03

Print this Post

Como posso gerar HTML estático de uma página ColdFusion dinâmica?

Uma técnica de cache muito poderosa é executar seu código ColdFusion para gerar uma página dinâmica, e então escrever o conteúdo dessa página dinâmica em um arquivo HTML estático. A página estática pode então ser carregada várias vezes sem se ter o trabalho de ter que reconstruí-la.

Para executar essa tarefa, voce pode usar uma combinação das tags ColdFusion <cfsavecontent> e <cffile>, ou o mecanismo de agendamento ColdFusion para escrever o  código HTML gerado de uma página dinâmica em um arquivo  HTML.

A tag <cfsavecontent> salva a saída gerada de um bloco de código ColdFusion ou HTML em uma variável. Logo, uma vez que voce tenha aquela variável, é o simples caso de usar a tag <cffile> para escrever os dados em um arquivo estático HTML.

O código abaixo é um exemplo desta técnica:


<!--- Create cached contents (HTML) --->
<cfsavecontent variable="cachedOutput">
     <html>
     <head>
          <title>Cached File Example</title>
     </head>
     <body>
          <h3>Cached File Example</h3>
          <cfloop index="loopOn" from="1" to="10">
               <cfoutput>The loop is on: #loopOn#<br></cfoutput>
          </cfloop>
     </body>
     </html>
</cfsavecontent>
<!--- Write cached contents (HTML) to file --->
<cffile action="write" file="C:\temp\cachedFile.html" output="#cachedOutput#">

A segunda forma de gerar documentos estáticos a partir de conteúdo dinâmico é usando o mecanismo de agendamento ColdFusion. Juntamente com a habilidade de gerar documentos estáticos, usando o mecanismo de agendamento, dá-lhe a capacidade adicional para atualizar automaticamente os seus documentos estáticos em qualquer horário que você pode exigir.

Existem duas opções principais para trabalhar com o mecanismo de agendamento do ColdFusion. A primeira opção é por meio do Administrador do ColdFusion, e a segunda é usando a tag <cfschedule>. Para o nosso exemplo, vamos usar este segundo método.

The real magic of using the ColdFusion scheduling engine to generate static documents from dynamic content lies in the publish attribute. If this attribute is set to yes, then the results of the page the scheduled task runs will be saved to disk (as per the file and path attributes). Beyond this, we are simply telling the ColdFusion scheduling engine what page to run, and how often the page should be ran. Some sample code using this technique would look as follows:

A magia  real em se usar o agendamento, encontra-se no atributo publish. Se este atributo for definido como Sim, então os resultados da página que o agendamento executar serão salvos no disco (através dos atributos file e path). Além disto, estamos simplesmente dizendo ao mecanismo qual página a executar, e quantas vezes a página deve ser rodada.

Um exemplo de código usando esta técnica ficaria da seguinte forma:


<cfschedule action="update" task="createStaticPage" 
     operation="httpRequest" 
     file="cachedFile.html" path="C:\inetpub\wwwroot\" 
     startDate="2/13/2006" startTime="12:00 PM" 
     url="http://127.0.0.1/createPage.cfm"
     publish="yes" interval="3600" resolveURL="yes">

by Jeremy Petersen

Permanent link to this article: http://ensina.me/coldfusion/como-posso-gerar-html-estatico-de-uma-pagina-coldfusion-dinamica/

Leave a Reply