0

イメージを提供するサーブレットを使用しています。ただし、これが生成されるまでに約 30 秒かかります。完了すると、OpenLayers インタラクティブ マップに表示されます。

www.test.comにいるユーザーが、www.test2.comにある画像が処理されているか完了していることを確認する方法を見つけようとしています。test2.com を開くと、ページが読み込まれようとしていることがわかります。完了すると、イメージは test.com のマップにも表示されます。

ただし、この画像が存在するかどうかをテストする方法がわかりません。私はおそらく次のようなものを探しています

    if(image exists at http://test2.com) {alert("request is done");

またはおそらく

    if(http://test2.com is loading) {doing something);

リクエストが失敗した場合にユーザーが座ってほしくないだけです。失敗した場合、URL の読み込みは完了しますが、画像は表示されません。どんなガイダンスでも大歓迎です!ありがとう!

カイル

4

2 に答える 2

3

それが別のサーバーである場合、JavaScript は、そのサーバーが存在するかどうかを確認するために、そのサーバーに対していかなるタイプの Ajax 要求も行うことができません。2 番目のドメインにヘッド リクエストを送信できるローカル ドメインにプロキシが必要です。

画像が読み込まれるまで待機している場合は、いつでも画像のプリローダーを実行できますが、onload イベントが発生する前に画像がレンダリングされるまでに時間がかかります。

var img = new Image();
img.src = theUrl;
img.onload = function() {
    nextStep(this);
};
img.onerror = function() {
     imgLoadingError(this);
};
于 2012-10-09T12:52:55.790 に答える
0

他のサーバーを制御できる場合は、そのサーバーに小さな画像を配置して、次のようなことを行うことができます: (未テストのコード、直接入力)

var img = new Image();
// Note the order of these two statements
img.onload = function()("The image loaded! Server must be up");
img.src = "http://example2.com/myflag.png";
于 2012-10-09T12:55:25.870 に答える