ADZ 學習筆記

Ruby/Rails, Startup, Life

rails 筆記 - jquery-ujs has already been loaded! 錯誤

| Comments

今天遇到一個很奇怪的問題,頁面上有幾個 link,在連續點的時候發現一直出現下面錯誤

jquery-ujs has already been loaded!

看了 jquery-ujs 的 code

jquery-ujs.js
if ($.rails !== undefined) {
    $.error('jquery-ujs has already been loaded!');
}

想說奇怪,只是一般點了一般的 link,重新載入頁面怎麼會有 $.rails 存在,再檢查 http request

不是正常的 200 ok,看來因為某種原因頁面沒有重新載入,為了確認寫了以下 js

application.js
if (typeof(X) === 'undefined') {
    X = 1;
} else {
    X = X + 1;
}
console.log(X);

結果還真的點了一般 link,X 一直增加 ... 卡了 30 分鐘後發現 application.js 裡面有一行 turbolinks,google 了一下,原來 turbolinks 是透過非同步方式不讓頁面整個 reload 來增加效能。

application.html.erb
<%= javascript_include_tag "application", "data-turbolinks-track" => false %>

最後把 turbolinks 拔掉就好了,但操作上也感覺慢了一點 ..

Comments

comments powered by Disqus