簡體   English   中英

DOMReady:“ kendo”未定義

[英]DOMReady: 'kendo' is undefined

我在生產環境中收到來自JavaScript的間歇性錯誤,並希望了解有關加載過程的更多信息。

該錯誤很容易理解:

'kendo'未定義。

它指出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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM