等待来自CDN的Javascript加载
我在Rails应用程序中有这个javascript块,启用了turbo-link:
var ready = function() { setTimeout(function() { $('#table-products').dataTable(); }, 100); }; $(document).on('ready, page:change', ready);
通常,我得到的错误是.dataTable()函数未定义,刷新可以解决问题。 但是,刷新并不总是令人愉快的,所以我将setTimeout添加了100ms以等待来自CDN的js加载。
到目前为止,我在开发环境中没有看到任何问题,但我担心如果有一个慢客户端,js将无法在100ms内完成加载。 我想知道是否有更好的解决方法,比如检查两个js文件是否已加载,类似于$(document).ready for DOM。
谢谢!
实际上有一个gem 。 它非常易于使用,并带有引导样式选项。 这比你拥有的更优雅,因为它不依赖于CDN,而是利用Rails资产管道。
我能找到的最优雅的方法是将所有cdn链接移动到布局页面中,以便加载和缓存所有库以获得整个用户体验。