DOMReady:'kendo' 未定义
DOMReady: 'kendo' is undefined
我在生产环境中收到来自 JavaScript 的间歇性错误,希望了解有关加载过程的更多信息。
错误很容易理解:
'kendo' is undefined.
它指出 kendo
变量在我尝试使用它时未定义。但是,我的所有 JavaScript 代码都包含在 jQuery ready
事件中,就像这样...
<head>
<script src="path/to/jQuery.js"></script>
</head>
<body>
<!-- ... -->
<script>
jQuery(function ($) {
var test = new kendo.data.DataSource({
// datasource options
});
});
</script>
<!-- ... -->
<script src="path/to/kendo.js"></script>
</body>
我的印象是 jQuery(function() { ... });
会导致内部代码在 DOM 准备好后变为 运行 并且它只会在所有 运行 之后<script>
标签已被解析和处理。
不是这样的吗?我应该将我的代码添加到 loaded
事件而不是 ready
事件吗?
FWIW,我们正在使用 Cloudflare 处理缩小和缓存,间歇性行为似乎只与 IE 有关。不过,我无法重现该问题,当我们的某个页面未能完成加载时,我只是收到通知,并且我看到控制台有此未定义的错误。再次导航到该页面没有问题,所以我有点困惑。有什么想法吗?
此外,我在我的代码中没有看到任何对 jQuery 或 kendo 库的重复引用。
这样用...
<head>
<script src="path/to/jQuery.js"></script>
</head>
<body>
<!-- ... -->
<script src="path/to/kendo.js"></script>
<script>
jQuery(function() {
var test = new kendo.data.DataSource({
// datasource options
});
});
</script>
<!-- ... -->
</body>
我在生产环境中收到来自 JavaScript 的间歇性错误,希望了解有关加载过程的更多信息。
错误很容易理解:
'kendo' is undefined.
它指出 kendo
变量在我尝试使用它时未定义。但是,我的所有 JavaScript 代码都包含在 jQuery ready
事件中,就像这样...
<head>
<script src="path/to/jQuery.js"></script>
</head>
<body>
<!-- ... -->
<script>
jQuery(function ($) {
var test = new kendo.data.DataSource({
// datasource options
});
});
</script>
<!-- ... -->
<script src="path/to/kendo.js"></script>
</body>
我的印象是 jQuery(function() { ... });
会导致内部代码在 DOM 准备好后变为 运行 并且它只会在所有 运行 之后<script>
标签已被解析和处理。
不是这样的吗?我应该将我的代码添加到 loaded
事件而不是 ready
事件吗?
FWIW,我们正在使用 Cloudflare 处理缩小和缓存,间歇性行为似乎只与 IE 有关。不过,我无法重现该问题,当我们的某个页面未能完成加载时,我只是收到通知,并且我看到控制台有此未定义的错误。再次导航到该页面没有问题,所以我有点困惑。有什么想法吗?
此外,我在我的代码中没有看到任何对 jQuery 或 kendo 库的重复引用。
这样用...
<head>
<script src="path/to/jQuery.js"></script>
</head>
<body>
<!-- ... -->
<script src="path/to/kendo.js"></script>
<script>
jQuery(function() {
var test = new kendo.data.DataSource({
// datasource options
});
});
</script>
<!-- ... -->
</body>