javascript - 如何调试使页面运行缓慢的脚本(根据 firefox)?

标签 javascript jquery raphael settimeout

我有一个有几个超时的脚本,使用 Raphael 绘制菜单并使用各种动态属性来完成此操作。您可以在 jsfiddle 查看它:JSFiddle version of my code

我的问题是 Firefox 偶尔会抛出“脚本运行缓慢等”。打开此页面时出错,可能会在半分钟或更长时间后出现。通常我会将鼠标悬停在一个元素上,因此此时会打开一个子菜单。该错误通常不会指向我的任何 js 文件,有时甚至不会指向 Firefox 自己的文件。

我该如何调试它,有可能吗?任何提示表示赞赏。 (我现在使用 chronos 作为计时器,似乎没有帮助)

最佳答案

剖析你的代码

您可能想要进行分析,即对您的代码进行性能分析。正如其他人指出的那样,Firebug 是 Firefox 中的一个好工具。更具体地说:在 Firebug 中,单击控制台 选项卡中的配置文件。然后稍微调整一下您的导航并再次单击配置文件 以完成分析并获得结果。他们会告诉您调用哪些函数的频率和执行时间。这将帮助您确定代码中的性能瓶颈。

优化

快速浏览一下,我会说您可能仍然可以优化 DOM 查询。保存对昂贵查询结果的引用。和 use contexts如果可能,提高查询效率。

此外,requestAnimationFrame()现在似乎是使用 javascript 动画的方式,而不是 setTimeout()

关于javascript - 如何调试使页面运行缓慢的脚本(根据 firefox)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11206407/

相关文章:

jquery - 更改 Kendo Treeview 中节点的文本

jquery - 从提交区域中排除标签

javascript - 在 raphael js 中填充属性

jquery - Raphael JS 工具提示在第一次悬停时不显示

javascript - 将节点从主窗口移动到弹出窗口会导致 HierarchyRequestError

javascript - localStorage 安全吗?我可以从另一个应用程序访问它吗?

c# - 客户端消息功能

javascript - 根据用户输入更改 Accordion 面板的颜色

javascript - 选定对象上的 Raphael JS 自由变换

javascript - 将一个 Div 插入另一个 Div?