turbolinks / turbolinks-classic

Classic version of Turbolinks. Now deprecated in favor of Turbolinks 5.
MIT License
3.54k stars 431 forks source link

Parameter for Custom Headers #610

Open Naomarik opened 9 years ago

Naomarik commented 9 years ago

I'm not entirely sure if this is desired following sentiment of the discussion here: https://github.com/rails/turbolinks/issues/515

I've hacked it in myself

Turbolinks.visit(url, change: ['search_page'], header: { key: 'X-Render-Partial', value: 'search_page'})

In the fetchReplacement method

xhr.setRequestHeader 'X-XHR-Referer', referer
# Under this line
if options.header
  xhr.setRequestHeader options.header.key, options.header.value

And this lets me call this.

if partial = request.headers['X-Render-Partial']
  render partial: partial, layout: false and return
end

This has allowed me to whittle my views render time from ~500ms...

image

...to ~55ms for the same query by avoiding the layout rendering and choosing the exact partial to render.

image

Causing my app to be the fastest thing I've ever seen.