Domanda

Sto cercando di adottare Jammit nella mia applicazione Rails.

Di fabbrica fornite nella documentazione afferra tutti i file js tra cui vista specifica javascript:

embed_assets: on

javascripts:
  workspace:
    - public/javascripts/vendor/jquery.js
    - public/javascripts/lib/*.js
    - public/javascripts/views/**/*.js
    - app/views/workspace/*.jst

stylesheets:
  common:
    - public/stylesheets/reset.css
    - public/stylesheets/widgets/*.css
  workspace:
    - public/stylesheets/pages/workspace.css
  empty:
    - public/stylesheets/pages/empty.css

Consideriamo un caso quando vista specifica javascript deve essere eseguito solo su certa visione:

$(function(){
  alert("View specific message here!");
}

Come posso evitare tale effetto?

Saluti, Alexey Zakharov

È stato utile?

Soluzione

La mia preferenza è quella di concludere che "vista-specific-javascript" in una funzione. E poi chiamare tale funzione a seconda della pagina che in realtà carica. In questo modo, tutti i tuoi JavaScript può essere memorizzato nella cache da browser come un singolo file, e si possono eseguire le porzioni di JS di cui avete bisogno.

Così mi piacerebbe aggiungere un tag <script> al particolare modello html.erb che chiama la visualizzazione-specifica funzione di caricamento della pagina.

La speranza che aiuta ...

Altri suggerimenti

Sto scavando questo fino al punto fuori un'alternativa al jashkenas approccio, che è quello di un comportamento collegamento solo per tag specifici.

$(function() {
  $('#my-view-object').someBehaviour();
}

Quindi, qual è il trucco? La differenza principale è che il codice JS tende ad essere collegato a certi oggetti, non pagine. Nel caso in cui riorganizzare il vostro punto di vista, si vuole avere per cambiare le JS troppo. L'altro problema è che JS ha bisogno di essere in fondo alla pagina per spremere il massimo dal browser. Se si sta mettendo le voci di script nel vostro punto di vista, allora molto probabilmente finirà per essere tutto della pagina HTML markup e rallentando il rendering.

BR, - José

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top