2010-11-21 3 views
0

iOSのUIWebViewでYouTube関連のものをやっています。私はYouTubeのモバイル版を使用しています。彼らは絶対的に不思議な方法で物事を読み込みます(基本的に最初にテンプレートを読み込むだけで、実際にページを読み込むAJAX呼び出しをたくさん作成します)。JavaScriptを使用して、現在AJAX呼び出しが応答を待っているかどうかを確認する方法はありますか?

何か他の奇妙な:私はこれでページのボディ全体をロギングしています:奇妙な何

NSLog([webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.innerHTML"]);

は、すべてのAJAXが終了するまで、ロギングが起こらないということで、ページがロードされています。しかし、私はJavaScriptがAJAXが次のコード行を実行する前に終了するのを待たずにいると常に思っていました。これは矛盾しています。実際にはAJAXが完了して本当の完全なHTMLを返すのを待っています。

助けが必要ですか?よくわかりません。

答えて

0

あなたのAJAXが非同期であると仮定すると、ページの読み込み順序は、あなたが見ているものに影響する可能性があります。

  1. のスクリプトタグが最初に実行されます。身体は利用できません。
  2. 間に置かれたスクリプトは、ページの読み込み中に遭遇したときに実行され、本体がスクリプトのポイントまで使用可能になります。
  3. すべてのリソースがロードされると、window.onloadイベントが実行されます。

あなたのAJAXがどこで呼び出され、どこで呼び出されるかによって、これはあなたが見ている順序に影響する可能性があります。

NSLog()の細かい実装の詳細によっては、呼び出す直前のログ出力の出力が表示されないことがあります。多くの場合、今やフラッシュされるバッファがあります。おそらくUIスレッドが何か他のことをしていないときだけです。

関連する問題