5

我有一个小型 http 服务器,可以即时生成一些图像,生成过程可能需要一些时间。生成后,图像被无限缓存。

当前,如果用户请求未缓存的图像,则服务器返回202 Accepted带有Refresh标头的 a。如果图像被缓存,301 Permanently Moved则发送 a 并将用户重定向到唯一的 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 回答