我们正在开发文档管理Web应用程序,现在我们正在考虑如何处理多个文档上的操作。例如,假设用户多选择100个文档并且想要删除所有文档。到目前为止(我们不支持多选),deleteDoc
动作根据docId
向deleteDocument
服务请求ajax
。该服务依次调用相应的实用程序功能,该功能执行所需的权限检查并继续从数据库中删除文档。当涉及到多次删除时,我们不确定最好的处理方式是什么。我们已经找到了很多解决方案,但不知道哪一个最好(实践),我正在寻求建议。你要知道,我们热衷于保持后端代码完整地:优化调用同一服务的异步多请求操作
- 创建一个新的
multipleDeleteDocument
服务,调用单个文档根据我们要删除的文件的数量删除效用函数的次数(在我看来是丑陋的,与现代实践相反的直觉)。 - 使后端代码保持原样,对于每个文档,请在服务上发出
ajax
请求。 - 不知何故(我不知道这是甚至可能)将请求批量化为一个,但仍然让服务器执行
deleteDocument
服务X次。 - 使用
WebSockets
为多删除行动本质上减少通信开销和时间。我们的应用程序通常运行在低延迟的网络上(当网络套接字倾向于匹配http请求速度时),这是网络套接字的最佳选择。 - 我们还没有想到的东西?
在删除过程中,您想向用户提供什么样的反馈?我想你应该在找到最佳解决方案时考虑到这一点。如果它是'删除n - xyz.doc的文档1',那么选项'2'应该没问题。我甚至会去重构前端删除请求代码,以便即使对于单个文档也使用多重删除,这样您将有一个前端代码来处理它,并且后端代码保持不变。 – A4L
这是一个很好的想法,可以在做出多个请求时保持最终用户的占有率......但是,无论用户体验如何,我仍然在寻找最佳性能(很酷,看到每个动作的进度条,但如果它每个请求需要1秒钟就会变得太多)。 – Konstantine