Javascript 在连接速度较慢的某些环境中找不到该功能

Javascript function not found on certain environments having slow connectivity

以下是我的 MVC 应用程序中的确切场景:

有一个页面 (cshtml) 有网格。在该网格的每一行中,我们都有一个按钮。单击该按钮假设会打开一个弹出窗口(这是一个局部视图)。此部分视图包含一个 Kendo 网格,为了将通用行为应用于我们应用程序中的所有 Kendo 网格,我们创建了一个 javascript 库 (CustomGrid.js),它被捆绑在“~/JavaScript/CustomGrid”包内。

Bundle 渲染代码放在局部视图的顶部:

@Scripts.Render("~/JavaScript/CustomGrid")

在部分视图中,我们正在创建一个 Kendo 网格及其列和所有内容。以下 javascript 写在页面底部,以便将常见行为应用于该网格。

<script type="text/javascript" language="Javascript">
    $(document).ready(function () {
        //Bind plugin 
        var objGrid = $('#historyTrackGridDiv').setupGrid({
            loadDefaultView: false,
            allowPaging: true,
            allowViews: false,
            allowColumnHideShow: false,
            allowSaveAs: false,
            allowRefresh: false,
            pageSize: [10, 25, 50, 100, 200]
        });
    });
</script>

这适用于开发环境以及本地托管的少数测试环境。但是从特定测试环境访问该站点时会出现以下错误:

Uncaught TypeError: $(...).setupGrid is not a function at HTMLDocument.eval (eval at (jquerypackage?v=23.0-b68:1),

这个函数和 bundle 在应用程序的许多其他地方使用,在那里工作得很好。但是,该问题仅出现在一个特定页面中,并且在托管在特定环境中时也会出现。

我们知道这些环境很慢,加载包可能需要更多时间,并且 document.ready() 会在包加载之前被调用。

我们尝试使用 window.onload,但是因为我们已经有了 load() 事件,所以我们不能将这段代码放在那个事件中。我也无法在父页面中呈现此包,因为它与该页面中已经使用的其他一些 javascript 文件冲突。

知道如何解决这个问题吗?

按照 Stephen 的建议,我已将脚本从局部视图移动到父视图,之后我可以看到 java 脚本在尝试执行它们之前已加载到所有环境中,而不管连接速度如何。