如何使用YDN-db在另一个Html页面中加载数据库上下文
How to load a db context in another Html page using YDN-DB?
我已经在第一页加载了所有数据:
<script src="/Scripts/jquery-1.5.1.min.js" type="text/javascript"></script>
<script src="/Scripts/modernizr-1.7.min.js" type="text/javascript"></script>
<script src="/Scripts/ydn.db-jquery-0.7.5.js" type="text/javascript"></script>
<script src="/Scripts/jquery.mousewheel.js"></script>
...
var schema = {
stores: [{
name: 'products',
keyPath: 'cdProduto',
autoIncrement: false,
indexes: [
{
keyPath: 'cdCategoria'
}, {
keyPath: 'dtUltimaAtualizacao'
}]
}]
};
var db = new ydn.db.Storage('db-test', schema);
db.clear().done(function (num) {
db.add('products', [<%=jsonProducts%>]);
});
<%=jsonProducts%>从C#后端打印一些json。
我可以加载这样的信息,它起作用:
db.get('products', '2').always(function (record) {...
之后,在相同的浏览器和会话中,当我尝试加载我的第二个页面(/catalogo.html)时,然后用"2"键加载相同的产品,如下所示:
<script src="/Scripts/jquery-1.5.1.min.js" type="text/javascript"></script>
<script src="/Scripts/modernizr-1.7.min.js" type="text/javascript"></script>
<script src="/Scripts/ydn.db-jquery-0.7.5.js" type="text/javascript"></script>
<script src="/Scripts/jquery.mousewheel.js"></script>
...
var db = new ydn.db.Storage('db-test');
db.get('products', '2').done(function (value) {
console.log(value);
});
它在控制台上返回"undefined"。我没有任何线索。
此外,im在两个页面上都使用html缓存清单
<html manifest="/home/manifest">
以及在本地服务器下进行测试,例如使用localhost和端口60873进行访问。
我是不是错过了什么?这不是打开现有YDN-DB的正确方式吗?
谢谢!
您没有遗漏任何内容,它应该可以工作。您应该在开发控制台的资源面板上检查indexeddb内容。
您应该在第二页/catalogo.html中初始化,与第一页完全相同,即
var db = new ydn.db.Storage('db-test', schema);
更改架构会删除一些表。当不满足数据库约束时,就会发生此类数据丢失。它可以由库或浏览器本身触发。
在使用之前检查数据库连接是一个很好的做法,如下所示:
db.addEventListener('ready', function (event) {
var is_updated = event.getVersion() != event.getOldVersion();
if (is_updated) {
console.log('database connected with new schema');
} else if (isNaN(event.getOldVersion())) {
console.log('new database created');
} else {
console.log('existing database connected');
}
// heavy database operations should start from this.
});
相关文章:
- Jquery(多读/少读)在从数据库加载整个数据后不起作用
- 当select标记触发onChange事件时,从mysql数据库加载html表
- 为什么 Javascript 和 AJAX 调用(在页面加载时)会导致数据库行为空?(脸书画布)
- SuiteScript:如何有一个自定义的数据字段来从数据库加载信息
- 在Moqui中,如何在html.ftl中加载数据库表数据作为下拉列表
- Selectize.js:如何将数据库中已经选择的标签预加载到输入字段(Meteor&MongoDB/JSON)
- Angular js,在选择元素上,我想 POST 数据以将其保存在数据库中,然后我想使用 PUT 更新它而无需重新加载
- 从数据库加载记录,不带提交按钮的下拉选择
- 无限滚动:从数据库加载所有数据并滚动以显示更多
- 使用 SQL .js在 JavaScript 中加载 SQLite 数据库
- 有没有办法重新加载主GEPlugin数据库
- 如何高亮显示选定的文本并存储在数据库中,以及当页面重新加载时,如何高亮显示回选定的文本
- 单击图像时从数据库加载选项id
- 如何使用YDN-db在另一个Html页面中加载数据库上下文
- 在css背景上动态加载数据库中的图像
- 我如何通过ajax加载数据库内容之前,一个过滤器键被按下
- 点击加载数据库项
- JQuery没有'ajax加载数据库后无法工作
- 基于用户文本输入动态加载数据库
- 可以't在dhtmlxgantt.php中加载数据库