2016-04-05 3 views
0

私はwebviewを読み込んでいるスマートフォンアプリを開発しています。ときには、ネットワークの問題(インターネットが突然失われたり遅すぎたりするため)、すべてのリソースが読み込まれない(イメージ、サウンドなど)場合があります。私はHTMLページがロード完了したときを知る方法があることを知っていますが(onLoad、...)、ネットワークの問題のためにリソースの1つが読み込めなかった特定のケースで何をするのか分かりません。手動でテストする方法は見つけられません。リソースの読み込みエラーを検出しました

何らかの理由でロードできなかったリソースがあるかどうかを確認するために、HTMLドキュメントのロードが完了したかどうかを確認してください。正確には、私はhtmlの特定の内容を知らない。

たとえば、この場合、身体のonLoadイベントが発生していますか? document.readyStateが「完了」に切り替わりますか?

+0

すべてのリソースがロードされたときに 'window.onload'イベントが発生しました –

答えて

0

まあ、直接それをテストする方法はありませんが、あなたはその後、イベントをリッスン明示的にイメージをロードしようとすることができます:

var img = new Image(); 
img.onload = function(){ 
    alert('Okay'); 
} 
img.onerror = function(){ 
    alert('Nope'); 
} 
img.src = "something.png"; 

興味深い(あれば多分醜い)あなたがしたい場合に使用することができますハックたとえば、あらかじめサウンドやスクリプトをキャッシュにプリロードしておくと、ブラウザにイメージとしてロードするように要求することができます。それが存在し、ダウンロードされている限り、表示可能なものではないにもかかわらずエラーは発生しません。最も重要なことは、キャッシュに正しく格納されるため、すぐに使用できることです。

+0

私の場合はできません。私はページの内容を管理することはできません。 – Laetan

+0

本当に必要な場合は、ページをスキャンして、使用しているイメージを見つけて上記のテクニックを使用できます。イメージがすでにロードされている場合、イメージはキャッシュにヒットし、即座にオンロードを呼び出します。ロードされていない場合は、ブラウザはリロードし、その結果に応じて関連するイベントを発生させようとします。部分的にロードされたイメージを修復するために使用することさえできます。 –

+0

クールなトリック。私はそれを試みます。 – Laetan

関連する問題