停止Blob URL过期

我正在将图像上传到blob商店。 我从这里复制了这个例子。

我遇到的唯一问题是:如果我用表单加载页面,而不是立即提交图像。 URL可能会过期,当我尝试加载图像时,我会收到一个错误页面。 如何检查URL是否已过期并刷新URL而用户不知道?

当用户提交表单时,似乎可以获得Blob URL。 这样您就知道URL无法过期。

使用JQuery:

$.get("/blobUrl", function(data){ $("#changeProfilePictureForm").attr('action', data); $("#changeProfilePictureForm").submit(); $("#changeProfilePictureForm").hide(); $("#loadingImg").show(); }); 

我对此并不是100%肯定,但我看到网站刷新页面的部分而不实际刷新页面。 Twitter是一个嵌套示例,它将最新内容加载到页面顶部而不刷新它。

根据这个网站,您可以通过xml和php获取动态内容,而无需刷新页面。 因此,如果上传图像的表单有时间限制,您可以尝试使用这样的函数刷新表单而不实际刷新页面。

现在,如果url的时间有限,或者网页上的网页都有Cookie,那么您需要找出一种方法来续订或扩展API可能会或可能不允许您根据Google设置的方式进行操作。

我想如果最坏的情况发生,你可以通过html函数在页面上尝试自动刷新,但是如果这个人正在上传图片并且页面刷新,他们可能会失去他们所有的进展。

对不起,如果这不是最有帮助的事情,但我想我会尝试给出一些关于如何让球滚动的输入。

在URL过期之前有多长时间,您如何知道它是一个到期导致您的问题? 我没有看到Google API文档提到这一点。 此外,抛出什么exception。 你可以抓住它的服务器端,并使用新生成的上传URL将用户发回同一页面。 我知道这不符合您的要求,用户不知道发生了这种情况。

我想一个选项是找出URL到期之前的时间,然后使用JavaScript在超时附近异步调用服务器,检索新的上载URL并更改DOM中的URL。

但是,捕获exception和重新渲染声音的解决方案最好,因为我想URL只应在用户闲置了相当长的时间之后才会过期?