等待从CDN加载Java脚本

问题描述 投票:0回答:3

我在Rails应用程序中启用了Turbo-link:

<script type="text/javascript" language="javascript" src="//cdn.datatables.net/1.10.0/js/jquery.dataTables.min.js"></script>
<script type="text/javascript" language="javascript" src="//cdn.datatables.net/plug-ins/be7019ee387/integration/bootstrap/3/dataTables.bootstrap.js"></script>
<script type="text/javascript" charset="utf-8">
    var ready = function() {
    setTimeout(function() {
      $('#table-products').dataTable();
    }, 100);
    };
    $(document).on('ready, page:change', ready);    
</script>

通常,我会得到错误消息,即.dataTable()函数未定义,而刷新可以解决该问题。但是,刷新并不总是令人满意,因此我添加了100ms的setTimeout以等待CDN中的js加载。

到目前为止,我的开发环境中没有发现任何问题,但是我担心如果客户端速度慢,js将无法在100ms内完成加载。我想知道是否有更好的方法来解决此问题,例如检查两个js文件是否已加载,类似于$(document).ready for DOM。

谢谢!

我在Rails应用程序中具有以下JavaScript块,并且启用了Turbo-link:

javascript jquery ruby-on-rails cdn
3个回答
0
投票

实际上有一个gem for this。它非常易于使用,并带有自举样式选项。这比您拥有的更为优雅,因为它不依赖CDN,而是利用Rails资产管道。


0
投票

尝试


0
投票

我能找到的最优雅的方法是将所有cdn链接移动到中的布局页面,以便所有库都将被加载和缓存以提供整个用户体验。

© www.soinside.com 2019 - 2024. All rights reserved.