为了账号安全,请及时绑定邮箱和手机立即绑定

加载 JavaScript <script> 文件的顺序

加载 JavaScript <script> 文件的顺序

Cats萌萌 2022-01-07 16:07:50
我正在使用 Chart.js 在浏览器中绘制一些图表以进行可视化。因此,我编写了一个.js文件,我正在用 html 代码加载该文件。我收到了一些奇怪的问题,我完全不明白。以下加载 JS 文件的顺序正常工作,没有任何错误:<script src="assets/js/plugins/line_chart/moment.min.js"></script><script src="assets/js/plugins/line_chart/Chart.min.js"></script><script src="assets/js/plugins/line_chart/chartjs-plugin-zoom.js"></script><script src="assets/js/plugins/line_chart/hammer.min.js"></script>以下加载 JS 文件的顺序会引发错误:<script src="assets/js/plugins/line_chart/Chart.min.js"></script><script src="assets/js/plugins/line_chart/chartjs-plugin-zoom.js"></script><script src="assets/js/plugins/line_chart/hammer.min.js"></script><script src="assets/js/plugins/line_chart/moment.min.js"></script>错误:Uncaught Error: This method is not implemented: either no adapter can be found or an incomplete integration was provided.    at nn.en (Chart.min.js:7)    at n.update (Chart.min.js:7)    at he (Chart.min.js:7)    at Object.update (Chart.min.js:7)    at Qe.updateLayout (Chart.min.js:7)    at Qe.update (Chart.min.js:7)    at Qe.construct (Chart.min.js:7)    at new Qe (Chart.min.js:7)    at window.onload (line_chart_analysis.html:182)问题是我正在使用 Bootstrap-Studio,我无法更改实现的顺序,因为它是自动执行的。是否有可能在我创建的 JS 文件中有根本原因?我还在ready自定义的 JS 中使用了语句:document.addEventListener("DOMContentLoaded", function(){});
查看完整描述

1 回答

?
慕田峪9158850

TA贡献1794条经验 获得超7个赞

您需要在 Chart.js之前包含Moment.js。

Chart.js 文档可以更好地突出这一点,但在安装页面上有说明:

独立构建包括 Chart.js 以及颜色解析库。如果使用此版本,则需要在 Chart.js 之前包含 Moment.js,以实现时间轴的功能。

如果您无法更改加载顺序,则可以改用Chart.js的捆绑构建(并且不要单独加载 Moment.js):

捆绑的构建在单个文件中包含 Moment.js。如果您需要时间轴并希望包含单个文件,则应使用此版本。如果您的应用程序已经包含 Moment.js,则不应使用此构建。否则,Moment.js 将被包含两次,这会导致页面加载时间增加并可能出现版本兼容性问题。捆绑构建中的 Moment.js 版本是 Chart.js 私有的,因此如果您想自己使用 Moment.js,最好使用 Chart.js(非捆绑)并手动导入 Moment.js。


查看完整回答
反对 回复 2022-01-07
  • 1 回答
  • 0 关注
  • 204 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信