我正在測試以查看Turbolinks是否可以幫助我們的Web應用程序看起來更快一點,表現得像「單一頁面」應用程序一樣。Turbolinks總是像往常一樣加載頁面
既然我們已經有了一種「主鉤」上的所有鏈接的所有點擊,我就<body>
設置data-turbolinks="false"
然後改變了我們的點擊處理程序來調用Turbolinks:
function goToUrl(url) {
// some controls here, and then ...
Turbolinks.visit(url);
}
我也禁用緩存和根設置爲/
:
<meta name=\"turbolinks-cache-control\" content=\"no-cache\">
<meta name=\"turbolinks-root\" content=\"/\">
然而,我注意到,它總是執行標準的頁面變化,而不是它的「魔力」。
同樣的情況發生,如果我從控制檯調用方法,沒有顯示錯誤或警告,但頁面正常加載,而不是使用Turbolinks「魔術」。
它唯一的工作時間是訪問根地址("/"
)。
是否還有更多的配置涉及到,而不僅僅是使用visit()
方法?
編輯:
進一步測試後,我注意到,當調用Turbolinks.visit(url)
似乎「失敗」,由issueing正常頁面導航相反,它記錄時返回這樣一個對象是這樣的:
Object {
absoluteURL: "URL WHERE I TRIED TO NAVIGATE",
requestURL: "SAME AS ABOVE"
}
當我測試它是否正確裝入唯一的地址,我得到一個不同的對象,而不是:
turbolinks:visit {
target: HTMLDocument → /,
isTrusted: false,
eventPhase: 0,
bubbles: true,
cancelable: false,
defaultPrevented: false,
composed: false,
timeStamp: 1492781909168000,
cancelBubble: false,
originalTarget: HTMLDocument → /,
explicitOriginalTarget: HTMLDocument →/
}
在第一種情況下,它看起來像一個普通的對象,而第二種看起來更像是一個事件;但是這無助於確定導致其無法正常工作的問題。