为可用的图像创建浏览器池

moa*_*lon 5 html javascript http image-generation http-headers

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

目前,如果用户请求未缓存的图像,则服务器返回202 Accepted带有Refresh标题的图像.如果图像被缓存,301 Permanently Moved则发送a并且用户被重定向到唯一URL(不同的图像可以共享相同的唯一URL).

如果图像在<img>标签中引用(至少在Firefox上),整个系统就会中断.没有Javascript可以解决这个问题吗?如果没有,脚本会是什么样子?

Chr*_*ris 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
            }
        });
}
Run Code Online (Sandbox Code Playgroud)

好吧,你希望图像会在某个时候消失。

唯一的其他选择是在请求之前生成图像?例如,如果它只是为照片库创建缩略图,为什么要等到被请求才生成它呢?一旦获得就生成它吗?

希望有帮助/有意义。