3

试图优化一个 web 项目。

它使用 asp.net (webforms)、一堆 jquery 插件等等。

问题:有不必要的 HTTP 请求localhost/undefined,这使得每个请求比需要的时间长约 1 秒。

问题:有什么策略可以找到有罪的代码吗?

线索:undefined让我觉得有 JS 参与。

萤火虫日志:

GET /undefined HTTP/1.1
Host: localhost:17817
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; lv; rv:1.9.2) Gecko/20100115
Firefox/3.6
Accept: image/png,image/ ; q=0.8, / ;q=0.5
Accept-Language: lv,en-us;q=0.7,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-13,utf-8;q =0.7,
;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://localhost:17817/Default.aspx


如果您右键单击代码中的一行,它会给您一个条件断点。检查具有 URL 值的变量的名称,并在 typeof URL === 'undefined' 或 url === 'undefined' 时设置条件并查看堆栈

只需在第 3400 行设置断点(无条件)。它不经过那里。

3397 ajax: function( s ) {
3398 // 扩展设置,但重新扩展 's' 以便它可以被
3399 // 稍后再次检查(特别是在测试套件中)
3400 s = jQuery.extend(true, s, jQuery.extend(true, {}, jQuery.ajaxSettings, s));


将问题缩小一点 => 注释掉了 1 个渲染一些图像并使用gallerific jquery 插件和消失的魔术请求的 ascx 控制器。


问题在于galleriffic插件初始化。它找不到锚点,它是在没有图像或其他东西时创建缩略图的 href。现在很酷...

4

2 回答 2

1

您是否能够识别出发起请求的 JS 代码?如果您使用的是 Firebug,它应该在调用 AJAX 请求的控制台窗口中为您提供一行代码。如果它类似于带有 jQ​​uery 库中代码行的 $.post(),您可以在 Firebug 插件中导航调用堆栈,以尝试找出调用初始 JS 调用的位置。

于 2010-02-25T14:25:28.877 回答
0

您可能想尝试HTTP Watch

于 2010-02-25T14:23:35.403 回答