大量の AJAX を持つバックボーン アプリがあります。(ページの読み込みごとに 5 ~ 6 個の ajax 呼び出しが発生します)。ビュー内に多くのビューと内部ビューがあるため、
Phantom.js を実行すると、最終的な html 結果を取得できますか?
最終結果は、すべての ajax 呼び出しが実行された後にユーザーに表示されるものです。
大量の AJAX を持つバックボーン アプリがあります。(ページの読み込みごとに 5 ~ 6 個の ajax 呼び出しが発生します)。ビュー内に多くのビューと内部ビューがあるため、
Phantom.js を実行すると、最終的な html 結果を取得できますか?
最終結果は、すべての ajax 呼び出しが実行された後にユーザーに表示されるものです。
PhamtonJs は、JavaScript API を使用したヘッドレス WebKit です。ページをクロールするとき、PhatomJs は画像、js、css などのすべての依存リクエストをダウンロードします... また、JS および ajax 呼び出しも実行します。ただし、 onLoaded コールバックは、保留中のリクエストがない場合ではなく、ページのロードが終了したときに呼び出されます。したがって、これにはトリックを使用する必要があります。
問題を解決するには 2 つの方法があります。
Phantom.js はページで JavaScript を実行できるため、これは機能するはずです。Phantom.js を使用してクローラーに適切なバージョンの JavaScript サイトを提供する方法を説明した記事があります。
このスレッドで説明されているように、Ajax 呼び出しを完了するのに十分な時間を Phantom.js に与えてください。