问题标签 [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.
html - Web SQL 数据库文件夹
我在 Windows XP 上使用 Chrome,只是想知道该文件夹包含哪些 Web SQL 数据库文件?
我使用 Chrome Developer 工具检查了数据库,同时我仍然对存储这些数据库文件的位置感到好奇。
干杯。
javascript - 使用 Web 数据库的 Phonegap 错误:“表达式 mydb.transaction 的结果不是函数”
我第一次尝试将 html5 的 web 数据库使用 phonegap 用于 iOS 应用程序。但我遇到了这个错误,上面写着“mybd.transaction 表达式的结果不是函数”
如果我使用警报进行检查,initDB 正在执行,但是当涉及到 createTables 函数时,上述错误就会上升,我从此束手无策。
我已经使用了这个实现-> http://wiki.phonegap.com/w/page/16494756/Adding%20SQL%20Database%20support%20to%20your%20iPhone%20App
javascript - 无法从 phonegap 应用程序中的 web sql 数据库中检索数据
我正在开发需要存储一些数据的 iOS 上的 phonegap 应用程序。我正在使用 phonegap 文档中给出的存储 API,并且我相信正在插入数据。但是,当我尝试使用 SELECT 语句检索数据时,警报框中没有任何输出。
正在显示“loading2”警报,但之后我没有得到任何输出。
我的代码如下(取自 phonegap wiki):
jquery - HTML5 WebSQL:如何知道数据库事务何时完成?
我有以下代码,它获取一个 json 记录集并在客户端 Web Sql 存储上的三个不同表中插入一些数据。
如何拦截 databaseSync() 函数的结束?我想要做的是显示警报或更好的 ajax spinner gif,以便在同步完成时通知用户。
非常感谢您的帮助,Ciao!
android - 如何操作 Phonegap Web SQL 数据库
我正在使用 PhoneGap 开发一个应用程序,但我发现了一个问题。我不知道也找不到数据库文件,所以我可以操作它或检查它是否有我想要的记录和表。
有没有可以做到这一点的应用程序?我发现 Safari 和 Chrome 有一个菜单,但我在手机中找不到任何内容。
ios - 在 HTML5 iOS 应用程序中安全地存储数据 - localStorage / WebSQL / IndexedDB 合适吗?
我正在编写一个要在 iOS 应用商店发布的 HTML5 应用程序。使用 PhoneGap 或包装在 UIWebView 控件中。
我对在为我的应用程序存储数据方面有哪些选择感到有些困惑。
是否使用适合在此类应用程序中存储应用程序数据的 localStorage、WebSQL 或 IndexedDB 技术?我将存储 JSON 和 XML 数据。
请记住,如果用户无意中删除了这些数据,那么他们将丢失他们的工作,这显然是我不希望发生的。
我知道减轻这种风险的唯一真正方法是将数据同步到“云”或其他在线系统——我可以在未来的版本中这样做,但不是现在。最初,如果这是一种合理稳定的做事方式,我只想将数据存储在本地。
据我了解,在清除 cookie 时,浏览器也会清除任何 localStorage 数据。所以这排除了这一点,因为我可以看到用户偶然这样做。
WebSQL 看起来不错——用户不会在 iOS 上无意中删除它。他们实际上必须进入浏览器设置并手动删除数据库。
但是 WebSQL 的缺点是,从我读过的内容来看,它将来可能不会被支持。
使用 IndexedDB,我不清楚该数据何时被清除。当 cookie 被删除时它是否也会被删除,或者 Safari 设置中的“数据库”选项是否控制它?
IndexedDB 是不是更好的解决方案,因为它将来会比 WebSQL 有更好的支持?
还有其他我不知道的更合适的解决方案吗?
javascript - 2011年开发适用于iOS/Android的HTML5离线存储解决方案
问题:
我需要一个与设备无关(例如 HTML5)的解决方案,用于在手机或平板电脑类型的设备(例如 iOS/Android)上离线存储和查询 250,000 多行数据。我的想法是让人们在没有任何蜂窝数据连接的偏远地区工作,他们需要对这些数据运行查询并在离线时对其进行编辑。部分它将基于地理位置,因此如果他们所在的区域有资产(使用 GPS),那么它将显示这些资产并让它们进行编辑。当他们返回办公室时,他们可以将数据同步回办公室服务器。
我从 Web 标准的角度来处理这个问题的原因基本上是通过在 HTML5 中编写一次然后跨多个平台工作而不是在 Objective C 和 Java 中编写两次来节省金钱和时间。此外,如果您编写的东西与平台无关,那么您就不会被锁定,也不会在每个人都搬到更新的地方时随船而去。我们为 Windows Mobile 5 编写了一个类似的应用程序,现在它已经没用了,因为那个平台已经死了。
设备上的离线数据库需要是:
- 快速(响应不到 2 秒)
- 可能执行连接并与能够查询数据库的其他表建立关系
- 选择特定范围或标准内的数据,例如根据 GPS 读数通过 x 和 y 坐标。
选项:
HTML5 本地存储:
对于 <5,000 个键/值的少量数据很好,如果将其转换为 JSON,您甚至可以在其中存储数组/对象。
缺点:
- 即使在高端机器上超过 10,000 行,浏览器也会缓慢爬行。
- 无法对数据进行复杂的查询以提取所需的数据,因为您必须遍历整个存储并手动搜索它。
- 可以存储的存储量的限制
网络 SQL 数据库:
- 符合要求。
- 快速运行 250,000 行查询(1-2 秒)
- 可以创建复杂的查询、连接等
- 受 Safari、Android 和 Opera 支持,因此可在 iOS 和 Android 设备上运行
缺点:
- 自 2010 年 11 月起已弃用
- 跨目录攻击的安全漏洞。不是真正的问题,因为我们不会使用共享主机
索引数据库:
键/值对象存储类似于本地存储,除了索引。
缺点:
- 在 200,000 行上运行查询很慢(15-18 秒)
- 无法运行复杂查询
- 无法与其他表进行联接
- 主要手机或平板设备不支持,例如 iPad/Android
- 标准不完整
这留下了实施已弃用的 Web SQL 方法的唯一选择,该方法可能只能再工作一年左右。IndexedDB 和本地存储目前无法使用。
我不确定 Mozilla 和 Microsoft 是如何弃用 Web SQL 数据库标准的,以及为什么 W3C 允许它发生。据说他们之间拥有 77% 的桌面浏览器市场。在高级移动设备上,Mozilla 和 Microsoft 的影响力几乎为零,因为Safari、Opera 和 Android 拥有超过 90% 的市场份额。Mozilla 和 Microsoft 如何规定在移动市场中最有可能使用离线存储的标准应该使用哪种标准没有任何意义。
在Mozilla关于他们为什么要使用 IndexedDB 的评论中,主要是关于“开发人员美学”,他们不喜欢在 JavaScript 中运行 SQL 的想法。我不买它。
目前提议的标准是劣质的,并且是一个非常基本的 NoSQL 实现,速度很慢,甚至不支持人们在数据库中需要的高级功能。有很多样板代码来建立数据库并获取数据,但他们声称人们会在其之上编写一些不错的抽象库,以提供更高级的功能。截至 2011 年 10 月,他们无处可寻。
他们已经弃用了现有的 Web SQL 标准,该标准实际工作并在主要的移动/平板电脑浏览器中实现。而他们的“新”和“更好”标准在主要的移动浏览器中不可用。
作为开发人员,我们应该在接下来的 3-5 年内使用什么,届时 IndexedDB 规范可能会逐渐标准化,拥有更多功能,在主要的移动/平板电脑浏览器中实现,并且有一些不错的库可以让事情变得更容易?
W3C 应该让 Web SQL 数据库标准保持并行运行并解决问题。它已经支持主要的移动平台,并且运行良好。Mozilla 和微软作为拥有最多桌面浏览器份额的两个玩家能够让这个标准废弃这一事实是相当可疑的,并且可以被视为试图阻碍移动网络平台的进展,直到他们能够赶上并提供与 iOS/Safari 和 Android 竞争的解决方案。
总之,是否有人为我的问题提供了适用于手机/平板设备的 iOS/Android 的解决方案。也许是一个很好的包装 API,它可以在后台使用具有查询功能的多个数据库实现,它允许您选择哪个数据库具有优先权。我见过诸如草坪椅之类的东西,但我很确定它只允许您默认使用本地存储并回退到其他存储。我想我宁愿它使用 Web SQL(默认情况下)然后是较慢的选项。
非常感谢您对解决方案的任何帮助,谢谢!
javascript - 比较sql语句中的日期
我正在使用 web sql 制作警报工具。
我想选择在特定日期发生的所有事件。当我插入事件时,我将日期作为日期对象插入,格式为“2011-10-14”,我应该在 select 语句中写什么来选择今天发生的所有事件?
我这样做
我的查询是:
但是会出现一条错误消息,即“接近十月:语法错误”
我应该如何在 sql 中进行日期比较?
cordova - Android 和 iOS 上的本地存储有多持久?
当我的应用程序将数据本地存储在手机上时,该存储的持久性如何?我将详细说明确切的情况:
我正在使用 jQueryMobile 和 Phonegap 构建一个应用程序。它本质上是一个浏览器应用程序,但使用 Phonegap 可以让我将其打包并在应用程序商店中销售,以及其他优势。
Phonegap 提供两种存储方式,这两种功能都协调了 iO、Android、Blackberry 和其他一些操作系统的原生功能:localStorage(原始键值对)和 Web SQL 数据库。localStorage 和 web SQL 都是属于浏览器的存储形式。话虽如此,我不知道数据将保留多长时间,在什么情况下会被删除,在什么情况下可能不可用等。
例如,如果应用程序使用 localStorage 或 web SQL 存储数据,并且用户在其 Android 上切换到不同的标准浏览器,应用程序是否会使用新浏览器打开,这是否意味着存储的数据不可用?
如果用户一年不使用该应用程序(在我的情况下这是一个现实的情况,不一定是坏情况),数据是否会像 cookie 一样过期,或者可能会被大量的数据从浏览器的存储中推出来自其他应用程序的数据?
或者数据是否会更早地被销毁,例如: - 用户在浏览器中访问另一个站点 - 浏览器被手动关闭 - 浏览器进程被杀死或死亡 - 等等
或者 localStorage 和 web SQL 是只有在(在 Android 中)您转到“设置”>“应用程序”并主动删除与该应用程序关联的用户数据时才删除的存储类型?
感谢您的任何见解。在 ol' WWW 上没有任何信息。
在应用程序更新的情况下会发生什么。本地和网络存储将被删除还是会保留?
javascript - iOS 和 PhoneGap 的问题
刚开始尝试使用 PhoneGap 将我的 html、css、javascript 文件适应 iOS(我也尝试过 NimbleKit,但结果是一样的)。我有一个最初为 Blackberry Playbook 编写的网络应用程序。该应用程序在 Playbook 以及 Chrome 和 Safari 上运行良好。但是,当我尝试使用 PhoneGap 通过 XCode 运行它时,应用程序显示在模拟器上,但似乎无法正确运行数据库编码(至少我认为这是问题所在)。我没有收到任何构建错误。
从文档来看,NimbleKit 似乎只支持它自己的内部 SQLite,但 PhoneGap 似乎支持 WebDB,这是我的数据库编写的。
最后,模拟器似乎没有运行我拥有的一些全局变量(我知道,我知道,不要使用全局变量),尽管这可能是因为它们出现在我的 javascript 文件开头的数据库初始化之后。
任何朝着正确方向的想法或观点都会非常有帮助。即使是一些可以帮助我在 iOS sim 中调试应用程序的文档。
提前致谢。