我有一个使用大量AJAX的骨干应用程序。(每个页面加载会产生5-6个ajax调用)这是因为我有许多视图和这些视图内部的内部视图,
如果我运行Phantom.js,我可以得到最终的HTML结果吗?
最终结果就是在我的所有ajax调用运行后用户看到的结果。
我有一个使用大量AJAX的骨干应用程序。(每个页面加载会产生5-6个ajax调用)这是因为我有许多视图和这些视图内部的内部视图,
如果我运行Phantom.js,我可以得到最终的HTML结果吗?
最终结果就是在我的所有ajax调用运行后用户看到的结果。
PhamtonJs是一个带有JavaScript API的无头WebKit。在爬取页面时,PhantomJs将下载所有依赖请求,例如图片、JS、CSS等,还会执行JS和ajax调用。
然而,在页面完成加载时调用onLoaded回调函数,而不是在没有挂起的请求时调用。因此,您必须使用一个技巧来解决这个问题。
有两种方法可以解决这个问题:
如果您可以访问网站的JavaScript代码,除了使用waitFor()
方式外,我认为您可以使您的ajax请求同步。这有时更简单、更准确。
document.body.innerHTML
这样的东西吗? - 11684