«

»

Apr 16

Print this Post

Usando Script Loader para carregar dinamicamente CSS e Scripts em aplicação com FW/1

Andrew Perkins, um colega meu, escreveu esse componente HeaderBuilder que é bem útil quando voce precisa carregar dinamicamente seus scripts e estilos em sua aplicação, de forma que cada página receba somente seus respectivos scripts
Vou mostrar como utilizá-lo em uma aplicação usando  FW/1 (Framework One) do Sean Corfield.
A primeira coisa a se fazer é baixar o componente  HeaderBuilder, expandi-lo (unzip) para a pasta  ‘org’  de sua aplicação: org.aperkins
Depois, crie uma instância do componente no seu  Application.cfc dentro do método SetupRequest(), que criará o objeto a cada request. Sendo este componente bem simples, não havendo métodos nele para cuidar do lixo ou limpesa do object em si, não é recomendado adicioná-lo no SetupApplication() como um singleton, caso contrário ele continuará adicionando scripts e estilos provenientes de todos os controllers.


Aqui vai um exemplo de uso. A estrutura de seus arquivos deveria ser assim:

Instanciando o objeto no seu Application.cfc:


public void function setupRequest(){
variables.rc.oHeader = new org.aperkins.headerBuilder();
}

Configurando scripts e estilos no seu  controller:


public void function default(required struct rc){
// add here your CSS and Javascripts for the default page
variables.rc.oHeader.addJavaScript('/assets/scripts/dashboard.js');
variables.rc.oHeader.addCSS('/assets/styles/dashboard.css');
variables.rc.oHeader.setPageTitle('This is the default page');
// write here your controller for the default page
}

Carregando os scripts e estilos no seu  layout:


#variables.rc.oHeader.getPageTitle()#
#variables.rc.oHeader.getJavaScript()#

Voce pode baixar o código inteiro deste exemplo de aplicação aqui.
Espero que isso o ajude a escrever código mais bacana.

Por: Ricardo Parente

Permanent link to this article: http://ensina.me/coldfusion/usando-script-loader-para-carregar-dinamicamente-css-e-scripts-em-aplicacao-com-fw1/

Leave a Reply