我正在尝试通过以下方式使用 sqLite 提供程序使用 JayData
myDB = new MyDatabase({ provider: 'sqLite' , databaseName: 'MyDB', version: 1 });
但是当它运行此行时,它会回显以控制台以下消息两次
"Provider fallback failed!"
我尝试手动加载sqLite提供程序而不是加载它,但它没有解决问题。如果我将提供程序设置交换为"indexedDb",JayData js 会自动尝试从错误的目录中加载 IndexedDbProvider.js 类
GET http://192.168.2.49/Test/jaydataproviders/IndexedDbProvider.js
什么时候应该
GET http://192.168.2.49/Test/js/Jaydata/jaydataproviders/IndexedDbProvider.js
有谁知道为什么我使用 sqLite 出现错误或如何让提供程序从正确的目录自动加载?我也尝试手动加载 indexedDB 提供程序,但它无法解决问题,并且仍然尝试错误地加载提供程序
我已经将最新的JayData代码直接复制到Jaydata下的SiteRoot/js文件夹中,它应该在该文件夹中是自洽的,我没有更改或移动任何文件
我的数据库架构很大,但本质上类似于以下实体和数据库定义
$data.Entity.extend("Image", {
id: { type: "int", key: true, computed: true },
location: { type: String, required: true, maxLength: 500 },
classification: { type: "int", required: true },
name: { type: String, maxLength: 500 }
});
$data.Entity.extend("Inventory", {
id: { type: "int", key: true, computed: true },
name: { type: String, required: true, maxLength: 200 },
description: { type: String, required: true, maxLength: 1000 },
imageId: { type: "int", required: true}
});
$data.EntityContext.extend("MyDatabase", {
Images: { type: $data.EntitySet, elementType: Image } ,
Inventories: {type: $data.EntitySet, elementType: Inventory }
});
我这里有一些 js 代码,专门使用 getScript 按顺序加载正确的 js 文件,并在 Firefox 中进行调试确认文件按顺序加载
我正在按以下顺序加载文件
- Jquery 2.1.3 /
- js/Jaydata/jaydata.js(默认的 Jaydata.js 文件未修改) /
- js/DB/DBSchema.js (我的模式定义数据库对象) /
- js/DB/DBUtilities.js(一些有助于处理数据库的函数) /
- js/main.js
第 5 步 ready $(function() 分配数据库变量,onReady 检查数据库是否已初始化
myDB = new MyDatabase({ provider: 'indexedDb' , databaseName:'MyDB', version: 1 });
myDB.onReady(function() {
logThis('Connected to DB');
checkIfInitilizeIsNeeded();
});
这是提供程序无法加载的地方
感谢您的任何帮助
根据这个页面,JayData不支持使用webSql或sqLite的Firefox,尽管它应该与indexeddb一起使用
。我已经使用 chrome 对其进行了测试,它似乎很高兴,所以是的,这个星球上第二流行的浏览器有点狡猾,但 nm