问题标签 [web-sql]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - web sql错误“数据库的当前版本和`oldVersion`参数不匹配”
我正在尝试运行这些功能集:
但是,运行后我得到一个错误current version of the database and 'oldVersion' argument do not match
。不知道我在这里做错了什么。
javascript - html 5 存储 websql 和 localStorage :数据存储多长时间?
使用新的 Html 5,在浏览器中存储数据的主要方式有 3 种:
- 本地存储
- WebSQL 数据库
- 索引数据库
我想知道,对于每种类型,数据存储多长时间?如果用户第二天进入,数据还会在那里吗?一个月后?一年?
谢谢
synchronization - 在 webSQL 数据库和 MySQL 数据库之间同步数据
在我正在编写的应用程序中,我需要在本地 webSQL 数据库和远程 MySQL 数据库之间保持双向同步。
我遇到过像 Persistencejs 和 Impel.inTouch 这样的库,Persistencejs 似乎有一个我想要的插件,但是从我收集的内容来看,它只在每个对象的粒度上同步,因此数据库可能会变得不一致?
服务器端的例子也不是很清楚,而且 Persistencejs 是否也会同步数据库模式令人困惑。
另一方面,Impel.inTouch 似乎只关注保持数据库模式的同步,而不是数据。
我正在寻找一种在远程 MySQL 数据库和本地 WebSQL 数据库之间同步一组表的简单方法。我已经包含的框架是 jQuery 和 jQuery mobile。
javascript - 将多个数据与其父级合并?
欢迎提出如何更好地表述这个问题的建议。
假设我有一个如下的数据库查询:
下面我提供了一个 HTML 输出示例。s 中的所有属性div
都是具有相应值的数据库字段。
我从 jacob 和 Gaby 那里得到的答案是基于下面的 HTML。这是我的错误,因为我认为如果我这样提供它会更容易理解我的问题。
我怎样才能得到它:
而对于更多的 GUI,它应该看起来像这样JSFiddle
。
用雅各布的例子解决:
javascript - IndexedDB 的概念问题(关系等)
我正在写一篇关于 Web 应用程序的离线能力的论文。我的任务是通过具有服务器端关系数据库和客户端和服务器之间的 Ajax/JSON 流量的 Web 应用程序来展示离线存储的可能性。我的第一个实现使用了 localStorage 的方法,将每个 Ajax 响应保存为值,并将请求 URL 作为键。该应用程序运行良好。然而,在下一步中,我想(即论文要求)使用客户端数据库实现更高级的版本。由于服务器维护一个关系数据库,Web SQL 数据库将是直观的选择。但是,正如我们所知,该标准已被弃用,我不想使用未来不确定的技术。因此,我想使用 IndexedDB 来实现客户端数据库逻辑。很遗憾,
我的任务似乎相当简单: 使用 IndexedDB 在客户端实现服务器端数据库,以复制曾经从服务器获取的所有数据。使这变得不那么简单的问题是:
- 服务器端数据库是关系型的,IndexedDB (或多或少)是面向对象的
- 没有直观的方法来同步客户端和服务器端数据库
- 没有直观的方法来实现 IndexedDB 中使用服务器上的外键和 JOIN 实现的关系
现在,我有一个概念,我真的很害怕开始实施。我考虑为服务器数据库中的每个表创建一个对象存储,并手动对不同对象存储中的关系对象进行编程。在我的应用程序中,简而言之,它管理一所大学的课程,我有 7 个对象存储。
我想通过一个来自服务器的 JSON 响应示例来展示我的想法(/* 这些是注释 */):
使用 IndexedDB 存储数据的算法会将应用于对象存储的每个对象存储在适当的对象存储中,并用对这些对象的引用替换这些对象。例如,上面的课程对象在对象存储“课程”中如下所示:
然后使用 IndexedDB 检索数据的算法将执行以下操作(我模糊地想到了一个递归模式):
很明显,这种实现会非常麻烦,尤其是由于 IndexedDB 的异步特性。它还会导致对数据库的许多不同事务只是为了检索课程对象,并且性能会受到很大影响(我真的不知道 IndexedDB 事务的性能如何)。
我怎样才能做得更好,更简单?
我已经看过这些代表类似问题的线程:link1,link2。我在这些中看不到任何更简单的解决方案。此外,由于几个原因,我宁愿避免使用 IndexedDB 包装器框架。
我还可以想象,对于我的问题,我完全走错了 IndexedDB 的轨道。
编辑:
我最终采用我的方法将引用存储在 IndexedDB 中的对象本身中。在具有大量引用的大量数据的情况下,这可能会导致一些性能问题。然而,如果巧妙地使用,在大多数情况下可以避免大量的迭代和数据库命中,并且不需要将复杂的数据库模式存储在内存或 IndexedDB 本身中。
一般来说,我必须说,我的印象是我在某种程度上误解了 IndexedDB 作为无模式数据库的动态和直接的想法。但无论如何,我用 JavaScript 实现了所有东西,它工作正常,没有任何不一致的机会。
delphi - 使用 Delphi+Intraweb 创建带有浏览器存储(webSQL/IndexedDB)的 HTML5 离线应用程序(缓存清单)可能吗?
我当前的 Intraweb 应用程序实际上是一个 DataSnap 客户端,它连接到我的 DataSnap 服务器,它与同一台机器上的 Interbase 服务器连接并坐在一起。它可以正常工作,但速度很慢,需要不断的 Internet 连接才能工作。单击的每个按钮或触发的任何事件都需要浏览器连接到 Web 服务器 (Intraweb)。
我正在考虑使用 Delphi XE2 中的 Intraweb、HTML5 缓存清单功能创建一个离线 Web 应用程序,并在移动设备离线时使用基于浏览器的 SQL 存储(例如 webSQL 或 IndexedDB)作为本地浏览器存储。只有当 Internet 连接可用于初始化或同步回 DataSnap 服务器时,它才会连接到真实的 DataSnap 服务器。
有可能吗?
我的主要问题是从 Intraweb Web 应用程序中获取网页的 url,我不想将所有浏览器的存储代码放在模板文件中。
将 Intraweb 生成的 JavaScript 代码移动到其他 js 文件中也很繁琐,这样做可能会破坏 Intraweb 应用程序的代码和逻辑。有什么解决方法吗?
google-chrome-extension - chrome 扩展之间的公共数据库
我想创建一个公共数据库,以便其他扩展可以访问它、创建表、添加实体、删除他们想要的实体。
我看到这样做的唯一方法是在多个扩展之间使用消息传递,但是这种解决方案对我来说是有问题的,因为我需要“管理”权限才能知道其他扩展 ID。
是否可以在不知道其 ID 的情况下向所有分机发送消息?还是有另一种在没有发布-订阅同步的情况下实现公共数据库的方法?
顺便说一句 - 我可以使用 localStorage 或 WebSQL。
javascript - 当 WebSQL 被弃用时,如何与 HTML5 离线应用相处?
由于 WebSQL 已经失去了所有的支持并且停止了开发,人们如何能够在使用 HTML5 的 Web 应用程序中实现离线存储。我知道 Google Chrome 和 Safari 仍然将它作为浏览器的一部分,但我想它很快就会丢失。那么哪些技术正在取代它,以及需要实现哪些不同的东西才能拥有离线应用程序而不是使用 webSQL?
javascript - 使用异步语句了解变量范围
当我执行以下操作时:
我以我想要的方式获得了一个 MfgID 列表,然后是一个未知数列表,因为dbo.transaction
它是异步执行的。
如何将变量传递给dbo.transaction
?
html - 创建后查找 HTML 5 web sql 数据库大小的大小
我在 Safari 中使用 HTML 5 Web SQL 数据库。我将数据库大小设置为 5 MB。创建数据库后,大小增加了,但我找不到数据库的新大小。创建后在哪里可以找到数据库的大小?