gpt4 book ai didi

Javascript WebSQL 始终使用一个事务对象

转载 作者:行者123 更新时间:2023-11-28 06:47:04 28 4
gpt4 key购买 nike

你好,我有一个工厂,它提供了与数据库一起使用的函数,它看起来像这样:

.factory('DBwork', function () {
var db = openDatabase("...");
db.transaction(function(tx){
tx.executeSql("CREATE TABLE...");
});

var factoryfunctions = {
insert: function() {
db.transaction(function(tx){
tx.executeSql("INSERT INTO...");});
},
select: function() {
db.transaction(function(tx){
tx.executeSql("SELECT FROM...");});
}
};
return factoryfunctions;
});

我需要一直使用一个事务对象,或者根本不使用事务,这可能吗?

简单来说,就是这样。

var db = openDatabase("...");
tx = db.transaction();

var factoryfunctions = {
insert: function() {
tx.executeSql("INSERT INTO...");
},
select: function() {
tx.executeSql("SELECT FROM...");
}
};
return factoryfunctions;

我是 JavaScript 新手,感谢您的帮助

最佳答案

缓存事务对象以供以后使用是没有意义的。 事务回调完成后将无法使用。按照规范的术语,它被标记为“过时”,因此对其 executeSql() 的任何其他调用都会引发异常。

数据库对象上只有三种方法可用:transaction()readTransaction()changeVersion()。没有办法避免事务对象。

但是,您可以做的是在一个事务回调中多次调用 executeSql()

参见此示例,http://html5demos.com/database-rollback .

关于Javascript WebSQL 始终使用一个事务对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33322045/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com