2013-02-18 34 views
0

我使用javascript上传多个文件。如何使用主干更新文件上传消息?

上传文件后,我需要运行几个处理函数。

由于需要处理时间,因此我需要在前面有一个UI,告诉用户整个过程剩下的估计时间。

基本上我有3个功能:

  1. /上传 - 这是上传文件的端点
  2. /生成/元数据 - 这是下一个端点后应触发/上传
  3. /进程 - 这是最后一个端点。在/ generate/metadata后应该被触发

这就是我期望屏幕基本看起来像的样子。应显示

enter image description here

如剩余百分比和离开时间的信息。

但是,我不确定是否允许服务器提供信息,或者我仅仅使用javascript做了一个骇人估计。

我还需要更新屏幕比如告诉用户的消息,如

“目前上传”

如果我在功能1.

“生成的元数据”如果我在功能2.

“处理......”如果我在功能3.

功能2后只发生1.

功能3成功完成只有我已经使用q.js承诺来处理这方面的一些零件2.

顺利完成后发生,但代码已经变得scarily凌乱。

我最近遇到Backbone,它允许结构化的方式来处理单个页面的应用程序行为,这是我想要的。

我没有问题,服务器端返回json响应成功或失败的端点。

我想知道什么是实现使用Backbone.js的

回答

2

您可以使用一个“进步”的文件或数据库条目存储后台进程的状态此功能的好方法。让你的后端进程定期更新这个文件。例如,写这篇文章的文件:用户提交

{"status": "Generating metadata", "time": "3 mins left"} 

后的文件具有前端开始使用简单的Ajax调用和setTimeout ping一台后端progress功能。 progress函数将简单地打开这个文件,获取JSON格式的状态信息,然后更新前端进度条。

您可能希望在Ajax调用来连接到你的模型(一个或多个)。让您的前端视图监视status的更改并相应更新(例如进度条)。

+0

谢谢。在使用主干之前是否实现了这样的事情? – 2013-03-02 06:16:42

+1

@kimsia我在生产中有一个应用程序,遵循这个确切的范例。模型查询状态更新和进度模态(视图)相应地更新。 – 2013-03-02 08:30:21

+0

谢谢你的回答。顺便问一下,请问您是否使用除骨干以外的任何其他js框架来执行此操作?例如,木偶? – 2013-03-02 09:04:02

相关问题