我今天正在查看一个greasemonkey脚本,试图弄清楚为什么它不再起作用了。玩了一段时间后,我意识到它在 firefox 3.6 上运行良好,但在当前版本 (8) 等更高版本上却运行良好。
经过一番谷歌搜索后,我来到了这里。
我不确定我是否正确阅读了这篇文章。WebSQL 完全从 Firefox 中删除是因为标准化过程已陷入“僵局”,因为除了 SQLite 之外没有其他实现?这是否意味着依赖WebSQL的greasemonkey脚本需要ff 3.6才能正常运行?
我想知道简单地将 SQLite 分叉到 NotSQLite 并让标准化过程继续下去会有多困难......
我尝试openDatabase与 Google Chrome 应用程序一起使用,但显示以下错误:
未捕获的引用错误:openDatabase 未定义
我还在unlimitedStoragemanifest.json中添加了权限()。
背景:
我的HTML5离线应用程序将大量数据存储到本地浏览器数据库中.我使用pouchdb3.3.1与inbrowser数据库通信,以便在浏览器中存储数据.一切都在正常情况下运作良好.我能够存储数据并在需要时将其检索回来.
问题:
当用户手动清除浏览器历史记录时,清除浏览器数据库中存储的所有数据.这个问题发生在IE11,Chrome36(这些是我的机器中的浏览器).
有没有办法在清除浏览器历史记录时保留浏览器数据库中存储的数据.
我在Cordova应用程序中使用localForage.
我想知道localforage的大小.基本上它被称为5mb限制.我的移动应用程序中将有超过100mb的数据.
var DefaultConfig = {
description: '',
driver: DefaultDriverOrder.slice(),
name: 'localforage',
// Default DB size is _JUST UNDER_ 5MB, as it's the highest size
// we can use without a prompt.
size: 4980736,
storeName: 'keyvaluepairs',
version: 1.0
};
Run Code Online (Sandbox Code Playgroud)
大小是4980736字节,这是4.9MB ..如果我增加到100mb,它支持吗?
local-storage web-sql indexeddb angular-local-storage localforage
在websql中,我们可以像这样请求某一行:
tx.executeSql('SELECT * FROM tblSettings where id = ?', [id], function(tx, rs){
// do stuff with the resultset.
},
function errorHandler(tx, e){
// do something upon error.
console.warn('SQL Error: ', e);
});
Run Code Online (Sandbox Code Playgroud)
但是,我知道常规的SQL,并认为我应该能够请求
var arr = [1, 2, 3];
tx.executeSql('SELECT * FROM tblSettings where id in (?)', [arr], function(tx, rs){
// do stuff with the resultset.
},
function errorHandler(tx, e){
// do something upon error.
console.warn('SQL Error: ', e);
});
Run Code Online (Sandbox Code Playgroud)
但这没有给我们任何结果,结果总是空的.如果我将删除[arr]入arr,然后sql将获得可变数量的参数,所以我认为它应该是[arr].否则它将要求我们添加动态数量的问号(与数组中的id一样多).
那么有谁能看到我做错了什么?
大家好,这是我关于堆栈溢出的第一个问题.我正在开发一个带有phonegap的应用程序,使用webSQL和javascript.在我的应用程序中有一个登录表单,它接受两个输入:用户名和密码.当用户填写这些值并单击Login时,将在具有多行的数据库表中检查这些值.检查值我正在使用此查询 -
var email=document.getElementById("uname").value;
tx.executeSql('SELECT * FROM USERINF Where Email=email', [], MatchPass, errorCB1);
Run Code Online (Sandbox Code Playgroud)
但是查询不能使用带有java脚本变量的where子句.我也试过很多同义词,比如
where Email=@email
where Email="+email+"
Run Code Online (Sandbox Code Playgroud)
还有更多,但他们都没有工作.
是否可以使用带有where子句的javascript变量?如果是,请告诉我如何.如果没有,请建议我完成任务的任何其他方式.提前致谢.
这是我完整的JavascriptCode
// JavaScript Document
var db=window.openDatabase("CakeViewer", "1.0", "Cake Viewer", 2*1024*1024);
function login()
{
db.transaction(matchcred)
function matchcred(tx)
{
var eml=document.getElementById("uname").value;
tx.executeSql('SELECT * FROM USERINF Where Email=eml', [], MatchPass, errorCB1);
//problem is in above line-- the query is not executed with variable where clause. But it works fine if I use where Email="abc@abc.com"
}
function MatchPass(tx, results)
{
var orgnalPass=results.rows.item(0).Password;
var …Run Code Online (Sandbox Code Playgroud) 在创建一个新的(空的)PhpStorm 项目时,我选择了 TypeScript 作为我的脚本语言,因为我熟悉 OOP 概念并且我喜欢它们。
使用 JS 访问 WebSQL 服务时,我可以编码
var db = window.openDataBase(name, version, displayName, size)
Run Code Online (Sandbox Code Playgroud)
但是使用打字稿执行此操作时存在问题。TS 不知道openDatabase出于什么原因的财产。
我已经阅读了一些帖子,它们都属于 Cordova/PhoneGap 的问题。由于我只是想做一个简单的WebApp,它检查本地商店是否有数据,然后显示数据,如果没有从服务器获取数据,这就太多了。正如我所说,这应该只是用户访问的网页,并且可以添加到他/她的主屏幕。而已。
“好老”的 WebSQL 对我来说是完美的,因为我的目标设备是 Android 和 iOS,它们都支持 WebSQL。问题是如何使用 TS 访问 openDatabase?
我从 Cordova 中了解到我通过 NPM 安装的 SQLite 插件。但是在那里我必须给出一个数据库名称。出于平台兼容性的原因,这一事实让我感到担忧。
web-sql ×7
indexeddb ×2
javascript ×2
sqlite ×2
cordova ×1
firefox ×1
greasemonkey ×1
html5 ×1
localforage ×1
phpstorm ×1
pouchdb ×1
sql ×1
typescript ×1