我正在调试一个包含大量JavaScript,JQuery,Ajax等的大型复杂网页。在该代码的某处,我收到一个调用服务器根目录的请求(我认为它是一个空的img)。我知道它不在html或css中,并且我非常确信在JavaScript代码中的某个地方正在制作请求,但我无法追踪它。我习惯使用firebug,VS和其他调试工具,但我正在寻找一些方法来找出它的执行位置 - 这样我就可以找到大约150个.js文件中的违规行。
除了输入“你现在在这里”的gazzillion控制台输出之外,是否有人建议调试工具可以突出显示Javascript对外部资源的请求?还有其他想法吗?
一步一步的调试需要很长时间 - 我必须小心我的步骤(jQuery源 - yuk!)我可能会错过关键时刻
答案 0 :(得分:2)
如何在Firebug中使用逐步脚本调试程序?
我也认为这对Firebug来说可能是一个非常有趣的增强,能够在AJAX调用上添加一个断点。
答案 1 :(得分:1)
你谈到了jQuery源代码......
假设请求通过jQuery,将调试语句放在jQuery源get()函数中,如果URL为'/'则启动。也许那时你可以从调用堆栈中判断出来。
答案 2 :(得分:1)
您可以使用Firebug控制台查看通过JavaScript完成的所有HTTP请求。
如果要手动跟踪所有HTTP请求,可以使用以下代码:
$(document).bind('beforeSend', function(event, request, ajaxOptions)
{
// Will be called before every jQuery AJAX call
});
有关详细信息,请参阅jQuery documentation on AJAX events。
答案 3 :(得分:0)
如果将HTTPRequest发送到Web服务器,我建议在Firefox上使用TamperData插件。只需安装插件,启动篡改数据,发送的每个请求都将被提示首先篡改/继续/中止。
答案 4 :(得分:0)
这里只是一个猜测,但你在使用ThickBox吗?它尝试在代码的开头加载图像。
我要做的第一件事是通过Firebug中的Net面板检查此rouge请求是Ajax请求还是图像加载请求。
如果它是Ajax,那么你可以用你自己的方法重载$ .ajax函数并做一个strack跟踪并在转移到原始$ .ajax之前包含所请求的URL。
如果它是一个图像,它并不理想,但是如果您可以通过服务器端睡眠响应图像请求(即只能睡眠20秒的php文件),您可以挂起应用程序并获得开始猜测至于问题可能在哪里。