我正在尝试通过 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 }
});
我有一些来自here的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 步 $(function() 分配数据库变量,onReady 检查数据库是否已初始化
myDB = new MyDatabase({ provider: 'indexedDb' , databaseName:'MyDB', version: 1 });
myDB.onReady(function() {
logThis('Connected to DB');
checkIfInitilizeIsNeeded();
});
这是提供程序无法加载的地方
感谢您的帮助
最佳答案
根据这个page JayData 不支持使用 webSql 或 sqLite 的 Firefox,尽管它应该可以与 indexeddb 一起使用
我已经使用 Chrome 对其进行了测试,它似乎很高兴,所以是的,有点狡猾,是地球上第二大最受欢迎的浏览器,但是 nm
关于javascript - JayData 提供程序无法加载 sqLite 和 indexedDb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28986488/