我正在使用 phantomjs 以 PDF 格式呈现 AnyChart v6 图表(http://6.anychart.com/)。
AnyChart v6 图表由一个 HTML 文件组成,该文件通过 Javascript 库调用 XML 定义文件并将其呈现为 SVG。
XML 定义文件是动态复杂处理的结果,因此服务器可能需要几分钟时间才能将 XML 文件传送到 Anychart javascript 库。
我的问题是强制 phantomjs 等待 XML 文件,所以我遇到了这个“twitter.js”脚本:
https://gist.github.com/cjoudrey/1341747
它工作得很好,除了有时它会永远锁定 phantomjs 并且唯一的方法是杀死 Linux 进程。
这是一种随机行为,如果我再次尝试使用相同的 URL,它会起作用。
服务器日志显示 XML 文件已正确传递,因此这不是服务器问题,而是客户端问题。
你能在“twitter.js”代码中看到竞争条件或在某些情况下会导致 phantomjs 锁定的东西吗?