render_async v2.1.8 Release Notes

Release Date: 2020-10-24 // about 1 year ago
  • ๐Ÿฑ The new version of render_async is out! ๐ŸŽ‰

    ๐Ÿฑ ๐Ÿ‘พ P.S. There is a render_async Discord server, please join and let's make render_async even better!

    The new version brings:

    • Reloading partials on demand
    • Start polling on page load when toggle is used
    • ๐Ÿ”ง Configure nonce globally
    • Assign start and stop events after the page loaded

    ๐Ÿฑ โ™ป๏ธ Refresh (reload) render_async partials

    This feature was requested in at least 3 issues opened on the repo recently. Finally, it is here!
    You can now provide a button for your users to easily refresh a partial that is render by render_async. Take a look at the example below:

    \<%= render\_async comments\_path, container\_id: 'refresh-me', replace\_container: false %\>\<button id="refresh-button"\>Refresh comments\</button\>\<script\>var button = document.getElementById('refresh-button')var container = document.getElementById('refresh-me');button.addEventListener('click', function() {var event = new Event('refresh');// Dispatch 'refresh' on the render\_async containercontainer.dispatchEvent(event)})\</script\>
    

    Now, every time a "Refresh comments" button is clicked, render_async will reload the comments partial. Hope you like the new feature.
    The issues closed with this feature: #121, #126, #129. More info in the docs here.

    ๐Ÿฑ ๐ŸŽ Start polling on page load when toggle is used

    We closed #118 with this feature. You can now specify start: true inside the toggle hash like this:

    \<a href='#' id='comments-button'\>Toggle comments loading\</a\>\<%= render\_async comments\_path,toggle: { selector: '#comments-button',event: :click,start: true },interval: 2000 %\>
    

    ๐Ÿ“„ This will make render_async to start polling on page load. Later, you can toggle polling with the "Toggle comments loading" button. There is more info in the docs here.

    ๐Ÿ”ง ๐Ÿ”ง Configure nonce globally

    You can specify nonces: true globally and never deal with it in specific render_async calls. Just add the following to your render_async configuration:

    RenderAsync.configure do |config| config.nonces = trueend
    

    ๐Ÿท After that, all javascript_tag elements will have nonce: true set. More info in the docs here.

    โฏ๏ธ Assign start and stop events after the page loaded

    ๐Ÿšš This is a bug fix mentioned in #128. We moved the event set up after the page loaded.
    If you had content_for inside the head tag, using async-start and async-stop will start working for you again.

    That's all folks, catch you in the next one!

    ๐Ÿฑ ๐Ÿ‘พ P.S. There is a render_async Discord server, please join and let's make render_async even better!