2

我需要接受用户上传的图片,并在后台做一些处理,比如生成不同大小的缩略图,原始图片的校验和,检查重复等等。之后,用户应该可以看到他的提交。

问题是http响应可能会在处理完成之前发送,那么我该怎么告诉用户呢?

我可以想到4个选项:

  • 为缩略图放置一个愚蠢的占位符,上面写着“处理”之类的标志,并在某处加上解释。用户必须按 f5 直到他看到图像,除非他已经信任系统并且知道它会工作。
  • 放置一个智能占位符,例如 javascript 动画加上重复的 ajax 调用,当缩略图准备好时将获取它们。这对用户体验很有好处,但可能会在服务器中产生一些开销。
  • 异步执行处理以避免过载,但阻塞请求直到处理完成。这看起来是一个不错的选择,可以快速交付产品,如果服务器开始同时上传许多内容,则稍后进行迭代。
  • 网络套接字?

还有其他选择吗?你觉得哪一个更好看?有什么我没有看到的优点/缺点吗?

4

1 回答 1

4

我会选择“放置一个智能占位符,例如 javascript 动画加上重复的 ajax 调用,当缩略图准备好时会获取它们。这对用户体验非常有用,但可能会在服务器中产生一些开销。”

然后,您可以根据分析进一步细化。随着时间的推移,您将知道根据图像大小、服务器负载等因素转换每个图像需要多长时间。您可以结合这些知识来优化轮询结果的 JS 脚本。

不要尝试在没有数据点和分析的情况下进行优化。

于 2012-09-10T06:35:00.450 回答