Program Tip

Rails의 뷰당 JavaScript 파일

programtip 2021. 1. 10. 19:29
반응형

Rails의 뷰당 JavaScript 파일


'눈에 거슬리지 않는 JavaScript'권장 사항에 따라 JavaScript 논리를
별도의 파일 분리 하고 싶습니다 . 그러나 나는 그들을 구성하는 방법을 모릅니다.

내가해야합니까:

  1. 모든 애플리케이션 자바 스크립트를 Application.js 파일에 넣고 레이아웃 페이지로로드하면 되나요? 이것은 간단한 접근 방식이지만 Application.js가 부풀어 오르게 될 것입니다. 일부 사용자는 몇 페이지 만 방문하기를 원할 수 있지만이 전체 파일이 미리로드되어 좋지 않습니다.
  2. 아니면 각보기에 대해 별도의 JavaScript 파일을 만들고 독립적으로로드해야합니까? 이것은 일련의 질문을 만듭니다. 각 js 파일을 해당보기에 연결하는 방법은 무엇입니까?
    감사.

매번 application.js에 기본 JavaScript를로드하십시오. 이제 다양한 요구에 맞는 파일을 만듭니다. form.js 파일, myfancypart.js 파일 등을 만듭니다. application.html.erb 레이아웃에로드하지 마십시오. 필요할 때 동적으로로드합니다.

application.html.erb :

<%= javascript_include_tag "application" %>
<%= yield :javascript_includes %>

view.html.erb 상단 :

<% content_for :javascript_includes do %>
  <%= javascript_include_tag "forms.js" %>
<% end %>

content_for 블록의 모든 것은 yield : javascript_includes로로드됩니다.


모든 파일을 하나의 파일에 넣는 것이 좋습니다. 그러면 축소하고 gzip 할 수 있습니다. 클라이언트는 모든 후속 요청에 캐시되므로 한 번만 다운로드하면됩니다.

관심을 가질만한 또 다른 것은 gem을 사용하여 설치할 수있는 자바 스크립트 종속성 관리자 인 sprockets입니다. 웹 사이트 ( http://getsprockets.org/ ) 또는 github 페이지 ( https://github.com/rails/sprockets ) 에서 스프로킷에 대한 자세한 정보를 얻을 수 있습니다 . 큰 자바 스크립트 애플리케이션을 훨씬 더 쉽게 작성할 수 있습니다.


이것은 Rails 3.1과 자산 파이프 라인으로 변경됩니다 !!!

표시 한대로 별도의 파일이 가장 좋습니다. 그것들을 모두 참조하고 링크하는 방법에 대한 문제는 생산을 위해 모두를 단일 파일로 컴파일하는 것을 목표로하는 rails 3.1로 사라집니다.


Jammit을 사용하여 CSS 및 javascript 파일을 포함 할 수 있습니다.

자세한 내용 : http://documentcloud.github.com/jammit/

사용하다:

1 단계:

assets.yml에 js 파일 추가 (아래 코드 참조)

자바 스크립트 :

footer:

- app/javascripts/lib/*.js
- app/javascripts/jquery-plugins/*.js
- app/javascripts/custom/*.js
- app/javascripts/application.js

머리글:

- app/javascripts/core/*.js
- app/javascripts/head/*.js

2 단계:

애플리케이션 레이아웃에 간단한 코드를 추가합니다.

<%= include_javascripts :header %>
<%= include_javascripts :footer %>

아마도 당신은 application_helper를 사용하고 싶을 것입니다.

def javascript(*files)
  content_for(:head) { javascript_include_tag(*files) }
end

def stylesheet(*files)
  content_for(:head) { stylesheet_link_tag(*files) }
end

참조 URL : https://stackoverflow.com/questions/602147/javascript-file-per-view-in-rails

반응형