2011-12-22 7 views
0

私はJavaについては比較的新しいし、HtmlUnitにはもっと新しいので、私にもご負担ください。メインスレッドとhtmlunitのjs executorスレッドを同期させる方法があるかどうかを知りたいですか?問題は、エレメントのテキスト値を読み込み、それらの値を更新するバックグラウンドでajaxリクエストを実行することです。HtmlUnit JS Executorスレッドとの同期

これはHtmlUnitのソースコードを変更せずに行うことができますか?

答えて

0

あなたが探しているものが正確かはわかりませんが、HtmlUnitのWebClientにNicelyResynchronizingAjaxControllerを設定すると、すべての非同期呼び出しが同期呼び出しに自動的に変換されます。これにより、AJAX呼び出しが完了したことを期待して、任意の時間ポーリングまたはスリープすることなくAJAXコードをテストできます。それはすべての場合の解決策ではありませんが、しばしば非常に便利です。

+0

ありがとうございます。私は単純なリアルタイムのスクリーンスクレイピングコードを書こうとしています。私は、特定のノードの変更についてHtmlDOMをチェックする無限の(ユーザ割り込み可能な)ループを持っています。もしそのような変更が見られるならば、いくつかの子ノードのテキスト値を記録します。しかし、バックグラウンドのjavascriptが同じノードを更新している間に、ループ内のコードがHtmlDOMにアクセスしているように見えることがあります。これはクラッシュにつながります。私はDOMChangeListenerを使用することができますが、それはまだ背景のJSスレッドと同期されるだろうと思いますか? – Ivan