NOTE / Ruby-On-Rails

HTML異步加載Script

rails use async

使用async

<%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload', :async => true %>

async的話,瀏覽器不會阻擋HTML的渲染(加載),當JavaScript下載完成時就會直接執行JavaScript,不會等HTML DOM加載。

使用defer(建議)

<%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload', :defer => true %>

defer的話,瀏覽器也不會阻擋HTML的渲染,但是當JavaScript下載完成後,會等HTML加載完成,才會執行JavaScript。如果JavaScript裡面有依賴DOM的話,適合用這個方式。

async和defer是瀏覽器的新標準,優點是可以比傳統做法效果更好。但是缺點是舊的瀏覽器支援不好,IE <= 9的版本不支持。

Loading