在 Rails 4 中使用 Sprockets 和 Turbolinks 时如何异步加载 javascript

How to load javascript asynchronously when using Sprockets and Turbolinks in Rails 4

我想将 zxcvbn.js 包含到我的项目中,并实现一个密码强度计来配合我的 devise_zxcvbn gem。

但是,我不想通过 Sprockets 加载 zxcvbn.js

那么如何在 page:load 期间异步加载它并在加载后 运行 一些代码?

回调更新

我可能会使用 getScript 调用来避免链轮。只是一些检查有效设备注册 url 或模态的 coffeescript,具体取决于您的设置,然后添加:

$(document).on 'page:load', ->
  ZxcvbnWithTurbolinks

ZxcvbnWithTurbolinks =
  $.getScript('/js/zxcvbn.js').done((s, Status) ->
    console.warn Status
    # Do some other interesting stuff, like using the script you just fetched
    return
  ).fail (jqxhr, settings, exception) ->
    console.warn 'Something is hinky - not possible to check password strength' + exception
    return