5

いくつかの画像をオンザフライで生成する小さなhttpサーバーがあり、生成プロセスには時間がかかる場合があります。生成後、画像は無期限にキャッシュされます。

現在、ユーザーがキャッシュされていない画像をリクエストすると、サーバーはヘッダー202 Accepted付きのを返します。Refresh画像がキャッシュされている場合、a301 Permanently Movedが送信され、ユーザーは一意のURLにリダイレクトされます(異なる画像が同じ一意のURLを共有する場合があります)。

<img>画像がタグで参照されている場合(少なくともFirefoxでは)、システム全体が機能しなくなります。これはJavascriptなしで解決できますか?そうでない場合、スクリプトはどのようになりますか?

4

1 に答える 1

2

Javascriptなしでできるかどうかはわかりませんが、おそらくajaxでこれを行うことができますか? つまり、サーバーをポイントして、そこにあるかどうかを確認します...表示されている場合は表示し、表示されていない場合は30秒後にもう一度試してください。次のようになります。

function getImage(img) {
 $.ajax({
            cache: true,
            url: <<ADDRESS>>,
            data: "",
            timeout: 60,
            error: function (jqXHR, error, errorThrown) {
                setTimeout(function() {
                    getImage(img);
                }, 30000);
            },
            success: function (data) {
                //set the image
            }
        });
}

さて、いつか画像が落ちることを願っています。

他の唯一のオプションは、要求される前に画像を生成することですか? たとえば、フォト ギャラリーのサムネイルを作成するだけの場合、生成を要求されるまで待つ必要はありません。入手したらすぐに生成するだけですか?

それが役立つ/意味があることを願っています。

于 2012-05-30T07:26:14.113 に答える