7

<div>我有一个 ASP.NET MVC 4 视图,它通过 JQuery AJAX 调用将两个嵌套的部分动态加载到元素中。每个部分都有自己的一大堆 Javascript。为了让这一切正常工作,我目前在success每个 AJAX 调用中都有所有的 Javascript:

function LoadPartial(someImportantId) {
    $.ajax({
        url: '@Url.Action("LoadThePartial")' + '?id=' + someImportantId,
        type: 'POST',
        async: false,
        success: function (result) {
            $("#partialContainerDiv").html(result);
            //here there be great piles of javascript
        }
    });
}

由于其中有两个部分,每个都需要数百行 Javascript,因此主视图文件变得难以管理。我很想将所有这些脚本代码放入一个单独的 .js 文件中,但我对 Javascript 还很陌生,我严重依赖 Chrome 的脚本调试工具,而且我无法弄清楚如何(以及是否)我可以加载这个脚本文件。我试过了:

调试器中没有脚本

  • 将脚本包括添加到主视图。这行不通。部分的 Javascript 都没有正确附加,这在同步级别上是有意义的。

东西不起作用

有什么方法可以让我为 AJAX 加载的部分创建一个单独的 Javascript 文件,并且仍然能够在客户端上调试该部分?更重要的是,我将所有这些用于 AJAX 加载的部分视图的 Javascript 放在哪里?

4

2 回答 2

7

将您的部分脚本包装在主页中包含的函数中;在 AJAX 成功处理程序中调用该函数,在您的部分加载后执行脚本。

于 2012-12-26T16:42:09.037 回答
1

现在有一个解决方案可以将您的动态 JS 代码放入主要浏览器的 Sources 树视图中,这就是使其可调试所需的全部内容。添加:

//# sourceURL=YOUR_FILENAME_OR_FULL_PATH_HERE

<script>动态加载的局部视图中标签内的任何位置。在我的实验中,# 后面的空格似乎在 Chrome 中是必需的,而不是在 Firefox 中,这基本上意味着它是必需的。

来源:https ://developers.google.com/web/updates/2013/06/sourceMappingURL-and-sourceURL-syntax-changed和其他几个 Stack Overflow 问题

于 2018-06-06T15:36:20.060 回答