为什么JS脚本以错误的顺序运行

Sim*_* ML 7 html javascript kendo-ui

在我的网络应用中,您可以打开加载报告的iframe(类似于Excel电子表格).报告开放一段时间(15-20次).在某些时候,我将开始总是得到关于剑道未定义的JS错误,我偶尔在IE控制台中得到"内存不足"错误.

正如您在我的HTML中看到的那样,kendo.all.min.js文件位于kendo.sage.custom.min.js文件之前.

<script type="text/javascript" src="/Scripts/kendo/web/kendo.all.min.js"></script>
<script type="text/javascript" src="/Scripts/kendo/kendo.sage.custom.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

当一切顺利时,小提琴手表演在此输入图像描述

但是当我开始收到错误时,我可以看到以下内容: 脚本错误的顺序

所以出于某种原因,在使用我的应用程序一段时间后,脚本将以错误的顺序加载.

所以我在每个脚本的顶部添加了console.log("all")和console.log("sage").当我正常工作时,我可以看到"全部"然后"圣人",但是当我开始得到剑道未定义错误时,我看到的只是"圣人"日志,而不是"全部".

我们正在使用ASP.NET MVC,脚本位于head部分的布局文件中.

什么可能导致脚本以错误的顺序运行?

小智 1

所有的脚本都在头部吗?如果没有,则将自定义文件移至页脚并在页面加载后加载自定义脚本,这将确保自定义文件在主文件之后加载

$(window).load(function(){
var element = document.createElement("script");
element.src = "/Scripts/kendo/kendo.sage.custom.min.js";
document.body.appendChild(element);
});
Run Code Online (Sandbox Code Playgroud)

对于您的答案,请参阅此链接 加载和执行脚本顺序