Features
Get the performance benefits of a single-page application without the added complexity of a client-side JavaScript framework.
Who uses it
Time (ms) | Description |
---|---|
10 | network latency |
50 | server response |
10 | network latency |
100 - 700 | parse html, create, render tree ... |
300 - 1500 | evaluate javascript |
100 - 250 | paint |
What is a visit
Responds with a full HTML response (no JSON)
document.body = xhr.querSelector('body');
What it does not do:
One javascript runtime
var audio = new Audio('<%= config[:http_prefix] %>audio/audio_file.mp3');
audio.oncanplaythrough = function(){
$('#player #play').prop("disabled", false);
$('#player #pause').prop("disabled", false);
}
var playMusic = function () {
audio.play();
};
var stopMusic = function () {
audio.pause();
};
$(document).on('click', '#player #play', playMusic);
$(document).on('click', '#player #pause', stopMusic);
<div id="player" data-turbolinks-permanent >
<p>Listen to my awesome music</p>
<button id="play" disabled>Play</button>
<button id="pause" disabled>Pause</button>
</div>
data-turbolinks-permanent
var number = 0;
setInterval(function() {
$('#counter p span').text(number);
number = number + 1
}, 1000);
<div id="counter" data-turbolinks-permanent>
<p>Number of downloads: <span>0</span>!</p>
</div>
Documentation
https://github.com/turbolinks/turbolinks
Resources