【问题标题】:How do I find/profile what JavaScript is being executed "right now" using Firebug or any other way?如何使用 Firebug 或任何其他方式查找/分析正在“立即”执行的 JavaScript?
【发布时间】:2011-11-11 01:10:03
【问题描述】:

我正在研究这个页面:http://www.fxstreet.com/rates-charts/currency-rates/,它通过 JavaScript 不断更新来自服务器的新数据。很明显,页面中不断执行一些 JavaScript 函数。所以我打开了 Firebug,我没有看到任何“分析器”类型的输出会不断添加有关执行脚本的新信息。 “脚本”选项卡仅显示 46 条不太清晰的记录,没有时间戳,也没有任何迹象表明有持续的新 JavaScript 活动需要分析。

我做错了什么?如何在页面上探索 JavaScript 活动?

【问题讨论】:

  • 在 Chrome 中,您可以通过在控制台窗口的右键菜单中选择该选项来查看 XMLHttpRequests。

标签: javascript firebug profiler javascript-debugger


【解决方案1】:

在 Firebug 的 Console 选项卡中,ClearPersist 旁边有一个 Profile 按钮,它可以执行您想要执行的操作。它不是实时的,但你可以让它运行一段时间,然后分析结果,这应该会告诉你你在寻找什么。

【讨论】:

  • +1 好先生!我什至没有意识到这个功能的存在
  • Chrome有对应的功能吗?
  • @lijo 是的,Chrome 好像有一个similar feature
【解决方案2】:

你可以做三件事之一

  • 加入 console.log() 行,以便在应用程序运行时向控制台输出您希望看到的数据
  • 向应用程序中的对象添加“监视”,当应用程序中该对象发生更改时,这些对象会自动更新
  • 在您的代码中放置断点,并逐步手动调试您的代码,看看它是如何运行的

如果你要查找的是服务器请求/响应信息,你要查看firebug的“Net”标签

【讨论】:

    【解决方案3】:

    在 firebug 或 chrome 开发工具中,选择 js 文件 cometd-1.1.2-teletrader.js。在那里,您可以在第 167 行设置断点或:

    function _longpollComplete
    

    你也可以在第 171 行设置断点:

    function _complete
    

    一旦您进入代码,您就可以看到返回的对象,其中包含更新网格的数据。您可以进入 _longpoolComplete 并查看数据结构:

    0:对象 频道:“/teletrader/symbols/3212198” 数据:对象 更改:“0.0124” 变化百分比:“0.1848” 日期时间:“11.11.2011 02:19:20” 最后:“6.6964” 符号ID:3212198

    1:对象 频道:“/teletrader/symbols/3212160” 数据:对象 更改:“-0.2725” 变化百分比:“-0.2202” 日期时间:“11.11.2011 02:19:21” 最后:“123.4650” 符号ID:3212160

    等等

    【讨论】:

    • 这听起来不错 :) 但你怎么知道的?是否所有此类脚本都有带有“long pool”等关键字的方法?
    • 不,并非所有此类脚本都有如此明确的名称。而且,我只查看了正在执行的 js,试图找出源代码是什么。
    猜你喜欢
    • 1970-01-01
    • 2014-01-14
    • 1970-01-01
    • 2012-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-31
    相关资源
    最近更新 更多