我们正在考虑尝试并将现有应用程序WebSql
后端/数据层移植到JayData
。都是客户端。我们想分两个阶段进行操作,以允许我们的应用程序继续使用现有方法从数据库中读取数据,同时我们的解析将移至允许JayData控制所有读取/写入数据结构。
早期测试进行得非常顺利。 JayData
是一个很好的ORM,易于使用。但是,我们一次又一次遇到错误:
Uncaught TypeError: Cannot set property 'initData' of undefined SqLiteProvider.min.js:35
DefaultError: DEFAULT ERROR CALLBACK!
Exception {name: "DefaultError", message: "DEFAULT ERROR CALLBACK!", data: Arguments[1], _getStackTrace: function}
根据日志,解析器(使用JayData)的每个阶段均已成功完成其读取和写入。但是,数据库中经常有尚未填充的表。所有表都在相同的上下文中打开并使用
$.Deferreds.
控制JayData认为自己已完成交易是“假阳性”,而错误实际上告诉了我吗?
在打开
context
时(但未使用)打开数据库(在JayData外部)并修改表是否存在问题?更新资料
遵循注释中的指示。
源在第424行上抛出异常-
items[i].physicalData.initData = item.rows[0];
最佳答案
与JayData小组进行了长时间的讨论之后,问题是由于试图一次对一个上下文执行多项操作而引起的。该团队建议使用在共享上下文中运行的承诺链,然后在最后阶段进行更改。这解决了我所有的问题。
关于javascript - JayData分阶段集成到应用程序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16106206/