当前位置: 首页 > 面试题库 >

如何调试通过AJAX(特别是jQuery)加载的Javascript

施永贞
2023-03-14
问题内容

最近,我通过更复杂的项目更改了编码样式,以“按需”加载页面(及其嵌入式脚本)。但是,很难像加载时那样调试这些脚本:

jQuery.get('/myModularPage', function(html){ /* insert the loaded page into the DOM */ });

要么

$('#some-container').load('/myOtherPage');

这些脚本可以完美运行,但是,如果要调试,如何在这些动态加载的页面和脚本中设置断点?


问题答案:

更新

现在,接受的表单带有#(标签)而不是@(符号)

语法进行了更改,以避免与IE条件编译语句和其他一些问题发生冲突(感谢Oleksandr Pshenychnyy和Varunkumar
Nagarajan指出了这一点)

//#sourceURL=/path/to/file

这实际上可以是任何可帮助您识别代码块的字符串

JMac的另一个优点是:

对我来说,该js文件显示在名为“(无域)”的组中的源列表中。可能值得一提,因为我一开始就很想念它!

原版的

在阅读本文之前,我在上述内容上苦苦挣扎了大约一个星期。它确实对我的开发环境(在我写这篇文章时是Chrome 22)非常有效。

Firebug还支持以开发人员命名的eval()缓冲区:只需在eval(expression)的末尾添加一行即可:

//@ sourceURL=foo.js

例如,给出以下简单的html文档:

<!DOCTYPE html>
<html>
<body>
    <p>My page's content</p>
    <div id="counter"></div>
    <script type="text/javascript">
        //if this page is loaded into the DOM via ajax 
        //the following code can't be debugged 
        //(or even browsed in dev-tools)

        for(i=0;i<10;i+=1) {
            document.getElementById('counter').innerText = i;
        }

        //but if I add the line below
        //it will "magically" show up in Dev Tools (or Firebug)

        //@ sourceURL=/path/to/my/ajaxed/page
    </script>
<body>
</html>

我尚未发现的事情:

  • 内联脚本的每个脚本块都必须这样做吗?
  • 它一定是脚本块的最后一行吗?(本文建议对此的答案是“ 是”


 类似资料:
  • 问题内容: 我正在创建一个浏览大量图片的应用程序。至此,项目的那部分完成了,它对正确的图片进行了排序,过滤和加载,甚至将它们拆分为单独的页面以加快加载速度。 效果很好,但每页加载25张图片仍需要8秒钟以上。我已经进行了一些研究,得出的结论是,使用异步jQuery Ajax请求是最好的方式,以便尽可能快地同时加载所有请求。 到目前为止,这是我的代码: 此代码的问题在于,除了带有灰色边框的空白方形外,

  • 问题内容: 我一直在努力使AJAX与Jquery一起使用。到目前为止,我最大的问题是我真的不知道如何弄清楚我在哪里犯错。我真的没有调试AJAX调用的好方法。 我正在尝试建立一个管理页面,其中我要执行的功能之一就是更改SQL数据库中设置的权限。我知道.click函数正在被触发,因此我将其范围缩小了,但是我不确定从AJAX调用到SQL查询的链在哪里出了问题。 我的.js代码: 我的.php处理程序:

  • 问题内容: 我正在尝试通过ajax和php调用一些数据库数据。但是ajax调用不起作用,我无法在网络上找到解决方案。 所以这是我的代码: test.php 如果我在浏览器中键入该网址: 通过jsonEncode返回的数据是正确的,但是当我使用jquery将其加载到html页面时,他无法读取数据。 test.html 提前致谢。 问题答案: 您的 变量 没有价值。您想使用 字符串 。也许您也希望能够

  • 问题内容: 我有一个index.php文件,可通过此javascript / ajax代码加载其他php文件: 因此,例如,我将通过以下方式在inxex.php中加载文件: 这会将“ contentpage.php”的内容粘贴到div“ updateThisDiv”中,但是现在如果我在“ contentpage.php”上有任何JavaScript,它将无法运行,有什么办法吗? 我已经看过了:ht

  • 问题内容: 我正在使用.load()函数加载具有某些jQuery功能且绑定到某个类的html部分。= / 有什么想法吗? 问题答案: 使用现场活动: jQuery保留了所有活动选择器的存储库,例如本例。并且它向文档添加了一个处理程序,以侦听冒泡到文档中的事件。然后,此特殊处理程序基本上会遍历所有活动选择器,并将事件转发到与活动选择器匹配的那些元素(如果有)。 如果任何中间事件处理程序拦截了该事件,

  • 问题内容: 好的,所以我对ajax和从外部加载内容还很陌生,希望对我的问题有任何见解。 我目前有一个隐藏的div,它是空的,单击链接后应该在其中加载ajax内容。 我目前有一个链接列表,所有链接都具有相同的类,并且我想在单击空白div时进行幻灯片切换,然后从链接要访问的页面中加载内容。 链接: 当前的jQuery: 刚接触Ajax并加载外部内容时,我想知道如何从位于标签中的链接页面加载内容。因此,