[Rails6] 5초 간격으로 브라우저 다시 로드 +α
7219 단어 JavaScriptRailserbtech
절차.
방법: 자동 업데이트를 위한 Javascript 준비
다음 Javascript를 준비하십시오.
app/javascript/packs/autoreload.js
const interval = setInterval('location.reload()', 5000)
$(document).on('turbolinks:before-cache turbolinks:before-render', () => clearTimeout(interval))
방법: 자동으로 업데이트하려는view로 읽기
app/views/**/*.erb.html
<%= javascript_pack_tag 'autoreload' %>
그게 다야.그렇긴 한데, "역시 리로드가 없네..."이런 분들은 아래의 응용편을 보세요.
응용 프로그램
부분 커팅
*.html.erb
의 일부*.js.erb
다시 쓰기
autoreload.js
방법: controller에 대응하는 것 이외의format(ajax 요구에 대응하는)
app/controllers/**/*_controller.rb
...
def index
...
@records = Record.all
respond_to do |format|
format.js
format.html
end
end
...
방법: *.html.erb의 일부분을 부분적으로 잘라내다
app/views/**/index.html.erb
<div id="records">
<%= render 'record' %>
</div>
app/views/**/_record.html.erb<%= record.name %>
방법: *.js.준비
app/views/**/index.js.erb
$("#records").empty();
$("#records").append("<%= escape_javascript(render @records) %>");
방법덮어쓰기 js
app/javascript/packs/autoreload.js
const milliseconds = 5000
const sync = () => {
$.ajax({
type: 'GET',
url: $(location).attr('href'),
dataType: 'script'
})
}
const interval = setInterval(sync, milliseconds)
$(document).on('turbolinks:before-cache turbolinks:before-render', () => clearTimeout(interval))
Reference
이 문제에 관하여([Rails6] 5초 간격으로 브라우저 다시 로드 +α), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/bino98/articles/00d1c023e21965텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)