2008-10-09 38 views
1

我正在调试一个大型的,复杂的网页,它有很多JavaScript,JQuery,Ajax等等。在那个代码的某处,我得到了一个调用服务器根目录的rouge请求(我认为它是一个空img)。我知道它不在html或css中,我非常确信JavaScript代码中的某个地方正在创建请求,但我无法跟踪它。我习惯于使用萤火虫,VS和其他调试工具,但我正在寻找一些方法来找出执行的地方 - 以便我可以在大约150个.js文件中找到有问题的行。JavaScript中的请求来自哪里?

除了在gazzillion控制台输出'你现在在这里'之外,有没有人有一个调试工具的建议,可以突出显示Javascript请求到外部资源的位置?任何其他想法?

步步调试将采取年龄 - 我必须小心我踏入(jQuery的源 - 议员),我可能会错过关键时刻

+0

这应该被标记为'jQuery'。 – 2008-10-11 20:37:27

+0

WTHeck是一个'鲁莽请求'? – alexvance 2012-08-24 15:49:59

回答

2

有关使用一步一步的脚本调试器是什么在Firebug中?

我也认为这可能是Firebug的一个非常有趣的增强功能,可以在AJAX调用中添加断点。

0

如果它的HTTPRequest发送到Web服务器,我会建议在Firefox上使用TamperData插件。只需安装插件,启动篡改数据,发送的每个请求都会首先被提示篡改/继续/中止。

访问this page at Mozilla website

+0

我试过了。这是一个很酷的加载项,但并不告诉我在JavaScript中的请求来自 – 2008-10-10 10:13:39

1

你刚才谈到的jQuery源...

假设请求经过了jQuery,把调试语句中的jQuery源的get()函数,那球,如果网址为“ /”。也许你可以从调用堆栈中知道。

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

0

只是猜测在这里,但你使用ThickBox?它试图在代码的开头正确加载图像。

我会做的第一件事是检查这个rouge请求是否是通过Firebug中的Net面板的Ajax请求或图像加载请求。

如果它是Ajax,那么你可以用你自己的方式重载$ .ajax函数,并做一个strack跟踪并包含在切换到原始$ .ajax之前请求的URL。

如果它是一个图像,它不是理想的,但如果你可以响应图像请求与服务器端睡眠(即只需睡20秒的PHP文件),你可能能够挂起应用程序,并获得一个开始猜测问题可能在哪里。