我需要接受用户上传的图片,并在后台做一些处理,比如生成不同大小的缩略图,原始图片的校验和,检查重复等等。之后,用户应该可以看到他的提交。
问题是http响应可能会在处理完成之前发送,那么我该怎么告诉用户呢?
我可以想到4个选项:
- 为缩略图放置一个愚蠢的占位符,上面写着“处理”之类的标志,并在某处加上解释。用户必须按 f5 直到他看到图像,除非他已经信任系统并且知道它会工作。
- 放置一个智能占位符,例如 javascript 动画加上重复的 ajax 调用,当缩略图准备好时将获取它们。这对用户体验很有好处,但可能会在服务器中产生一些开销。
- 异步执行处理以避免过载,但阻塞请求直到处理完成。这看起来是一个不错的选择,可以快速交付产品,如果服务器开始同时上传许多内容,则稍后进行迭代。
- 网络套接字?
还有其他选择吗?你觉得哪一个更好看?有什么我没有看到的优点/缺点吗?