【发布时间】:2014-03-02 06:44:51
【问题描述】:
我是 openerp 的新手,很抱歉提出这个基本问题。
在openERP没有连接服务器的情况下,我们可以保存和检索自定义模块的数据[离线模式]。如果“是”,在创建自定义模块以便离线工作时要遵循哪些步骤。数据如何同步?如何在离线模式下连接openerp
[不关心离线数据存储限制]
【问题讨论】:
我是 openerp 的新手,很抱歉提出这个基本问题。
在openERP没有连接服务器的情况下,我们可以保存和检索自定义模块的数据[离线模式]。如果“是”,在创建自定义模块以便离线工作时要遵循哪些步骤。数据如何同步?如何在离线模式下连接openerp
[不关心离线数据存储限制]
【问题讨论】:
你的问题不是那么基本。 OpenERP 本身没有离线模式。但是,作为开源和完全可扩展的 OpenERP,您可以自己完成。
您可以使用 HTML5 Web Storage 实现此类功能。它允许您在 Web 浏览器中本地存储数据。您的实现将负责启动时的数据检索和数据同步。当然,您将面临一些限制,例如存储限制(取决于浏览器 - 例如 5MB 或 10MB)和性能问题。
OpenERP 的Point Of Sale 模块实现了这样的本地存储。我不确定它是否已被使用,但您可以将其用作示例。您可能想在此处查看实现此模块的本地存储功能的 Javascript - db.js。
这个模块可以作为离线实施的一个很好的例子。尽管如此,模块中不再使用离线模式。在 db.js 文件开头的注释中给出了一个很好的推理:
/* The db module was intended to be used to store all the data needed to run the Point * of Sale in offline mode. (Products, Categories, Orders, ...) It would also use WebSQL * or IndexedDB to make the searching and sorting products faster. It turned out not to be * a so good idea after all. * * First it is difficult to make the Point of Sale truly independant of the server. A lot * of functionality cannot realistically run offline, like generating invoices. * * IndexedDB turned out to be complicated and slow as hell, and loading all the data at the * start made the point of sale take forever to load over small connections. * * LocalStorage has a hard 5.0MB on chrome. For those kind of sizes, it is just better * to put the data in memory and it's not too big to download each time you launch the PoS. * * So at this point we are dropping the support for offline mode, and this module doesn't really * make sense anymore. But if at some point you want to store millions of products and if at * that point indexedDB has improved to the point it is usable, you can just implement this API. * * You would also need to change the way the models are loaded at the start to not reload all your * product data. */
【讨论】: