首页
学习
活动
专区
圈层
工具
发布

流处理
EN

Stack Overflow用户
提问于 2014-07-01 02:18:08
回答 1查看 196关注 0票数 0

我有一个要求,当用户上传file时,它应该以以下方式工作

1)向用户显示文件上传对话框(在浏览器中)。用户选择一个文件。2)应用程序应该只加载前x个记录(例如,假设记录总数为100,然后获取前10个),用户将有机会对记录进行可视审查(只读视图)。3)然后用户决定两件事中的一件:“点击提交”,这将把所有的数据和流接收到服务器,或者如果他/他点击“下一步”,他/他可以查看下10条记录等。

Scalaz-stream是一个很好的整体解决方案,尤其适合上面的2)和3)吗?是否只获取部分数据并暂停流,然后继续、消耗并重复该过程?

EN

回答 1

Stack Overflow用户

发布于 2014-07-01 13:57:30

不,scalaz-stream不是一个好主意。这出戏!框架有其包含EnumeratorEnumerateeIteratee类的own framework,这些类可用于流的异步处理,并且文件上传代码已经构建好可以使用它。

您有两个选择:

首先,使用HTML5和前端Javascript来访问文件。这只适用于最新的浏览器。如果你不想在用户选择“提交”之前上传任何文件,这是唯一的选择。

第二,使用Enumerator框架在上传到服务器时对其进行增量解析,并在解析时使用记录的子集通过长轮询AJAX/Comet/Websocket响应前端Javascript。解析传入上载的Iteratee将不得不暂停并等待来自前端的进一步输入。此解决方案将很复杂,并且会受到浏览器超时问题的影响。

这两个都不是一个很好的主意。让整个文件一次性上传,然后将解析后的记录反馈到前端,并让"Submit“按钮实际上起到"Save”按钮的作用,以告诉服务器保留接收到的上传内容,这会简单得多。除非您要将100个MiB+ Excel文件推送到移动连接上,否则这可能是最简单和最兼容的解决方案。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24496429

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档