我正在运行幻像js
进程来呈现网页。该网页异步加载了许多javascript
,每个都运行自己的函数。
有没有办法检查/调试webkit中的javascript引擎,以了解它是否正在执行任何javascript行(而不是空闲)?
如果是这样,有没有办法告诉它正在执行哪个javascript资源?
暂停javascript引擎,记录堆栈跟踪,然后正常恢复它就像完美一样。
我不介意阅读webkit
,phantomjs
或render.js
的源代码,自行修改,并从源代码重新编译它。我想首先问问你们,如果一个功能已经存在,或者某人已经完成了,因为谷歌没有给我任何结果。谢谢!
答案 0 :(得分:0)
不是。
Phantom.js是一个集成测试工具。这意味着你不应该尝试探索内部,只断言结果。您想问的问题是:“我可以执行X操作”,“此功能是否从最终用户的角度出发”。
如果你想知道某个函数是否正在运行或在X行动中被调用。然后你正在查看你的程序的内部,你想要的是一个单元测试,你可能会断言一个函数是通过存根或嘲弄来运行的。如果是这种情况,那么请将sinon.js作为测试存根助手。
(请注意,您可以在phantom.js中运行您的单元测试 - 这没关系,因为您需要运行时来运行它们)
答案 1 :(得分:0)
检测JavaScript是否已编译并运行可能不是解决此问题的正确方法。最慢的操作是网络请求。您可以detect if all requests are done使用onResourceRequested
计算已启动的请求,使用onResourceReceived
计算已完成的请求,然后只为编译/运行添加一点静态等待时间。