When using viewloader with turbolinks, you want to make sure that viewloader executes once on the initial page load, once when the visitor reaches another page, and once when the visitor goes back in their browser (or forward for that matter).
To achieve this, get viewloader to execute on the ready
, page:load
and page:restore
events:
$(document).on("ready page:load page:restore", function() {
viewloader.execute(views);
});
page:restore
is fired by turbolinks whenever “A cached body element has been loaded into the DOM”.