1

我有这个要求,即用户从手机上传照片,并在照片中输入注释

但是,为了大大提高响应能力,我想在用户完成输入注释之前开始上传照片(instagram 使用相同的技术)

所以,有3种场景: - 照片上传完成,然后笔记提交 - 笔记提交,然后照片上传完成 - 笔记和照片同时完成上传

我现在使用唯一令牌以及 after_create 挂钩来检查和保存。

  • 照片上传和便笺都附带一个独特的 uuid

  • 将照片存储在具有唯一 ID 的临时存储中

    • 保存照片后(after_create),检查是否有任何带有唯一ID 的注释。如果是这样,请附上照片以说明。
  • 使用 uniqueid 存储便笺

    • 保存笔记时(after_create),检查是否有任何具有唯一ID的照片。如果是这样,请在照片上附上注释

这似乎是一个相当普遍的问题,我想知道是否有任何可接受的模式/解决方案?我正在使用 mongoid 和 rails 3.2

4

1 回答 1

0

避免并发问题和 UI 混乱。在你的情况下,我会做的是:

  • 用户选择照片->在JS(客户端)中设置本地变量->服务器开始上传照片(当服务器从照片上传响应时,取消设置本地js var)
  • 用户写笔记
  • 用户提交表单->您检查是否设置了 js 变量,如果设置了,则表示照片尚未上传,因此您显示一条消息。否则,您只需提交带有注释的表格。

如果您将流程简化为类似的东西,那么您不应该有太多的边缘情况需要调试和修复。

这里唯一的潜在风险是“死锁”情况,可以说由于某种原因服务器永远不会向客户端发送响应,而客户端永远不会取消设置 js var。为了避免这些情况,您可能会在客户端上有一个很大的超时,如果服务器在该超时内没有响应,您会显示一条错误消息。

于 2013-09-25T14:36:44.800 回答