我有一个存储在我的服务器中的csv文件列表,我使用d3js将这些文件显示给用户使用d3.js进行表格渲染,我使用django做服务器端工作。但是,我想添加一个新函数,即,当用户单击表中的值时,他们可以更改它们,当然,修改也用于真实文件(我存储在服务器中的文件)。我的想法是将每个值标记为行和列,当用户修改值时,我使用ajax将新值和row-col id传递给服务器,在服务器端,有一个函数修改csv文件,带有这3个输入。我想知道是否有任何演示或其他更好的方法来处理此任务。 非常感谢
答案 0 :(得分:0)
我通常会使用基于纯文件的csv来避免你的方法。
持续的磁盘/ IO操作对于服务器而言是昂贵的(Read this FAQ可能会帮助您了解更多),并且可能会引入竞争条件,多个用户尝试更新同一个表,然后csv将=> 读/写< - > 访问/锁定等。
我个人建议使用NoSQL数据库(如Redis,MongoDB等)作为 d3.js的存储后端,在服务器< - >之间进行通信客户端使用WebSocket - Pub/Sub消息(ajax作为后备)。
通过queue系统(Celery或仅使用NoSQL)读/写表状态。
如果您非常坚持,您还可以通过编写自定义服务器脚本来将存储(表数据)转储/导出到csv文件,从而获得定期存储备份。
我希望我的解释和建议能够引导您找到正确的方向并最终找到最佳实施方案(每个人的使用案例都不同)。祝你好运!