【问题标题】:Is closing a database opened with window.openDatabase necessary?是否需要关闭使用 window.openDatabase 打开的数据库?
【发布时间】:2012-11-26 23:14:59
【问题描述】:

此刻的代码按...的顺序读取一些东西

DoAnything() {
  OpenTheDatabase()
  // ... Do all the things! ...
}

但是,数据库对象永远不会关闭。这令人担忧。

数据库打开如下:

var db = window.openDatabase( ... paramters ... );

不存在.closeDatabase 函数,或者文档不完整。我认为以下可能就足够了:

db=null;

我看到 sqlite3_close(sqlite3*)int sqlite3_close_v2(sqlite3*) 存在,但我不确定在这种情况下如何应用它们。

如何关闭数据库,有必要吗?

【问题讨论】:

    标签: android sqlite cordova


    【解决方案1】:

    通常您只有一个在应用启动时打开的数据库连接,并且无需在应用打开时关闭它。它是一个单线程、单用户应用程序,因此很多关于数据库连接的常规规则都不适用。

    当应用关闭时,您可以依靠浏览器来关闭所有内容 - 鉴于网络上的平均代码质量,浏览器必须非常擅长清理。

    将 db 设置为 null 并让垃圾收集器完成它的工作可能也可以,但最好不要一开始就创建额外的对象。

    【讨论】:

    • 很公平。那么接下来的问题,既然使用了浏览器页面的比喻,你知道页面之间的db连接开放性是否持久吗?还是我们在这里谈论页面之间的垃圾收集?
    • 不确定特定浏览器的内部结构,但是当加载下一页时,在一个页面上设置的所有内容肯定会消失。无论如何,我自己的应用程序都是单页的 - 如果页面更改将其清除,则维护应用程序状态要困难得多。
    猜你喜欢
    • 2020-12-20
    • 1970-01-01
    • 2020-11-22
    • 2020-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-06
    • 2015-09-15
    相关资源
    最近更新 更多