关闭使用window.openDatabase打开的数据库是否必要?

Mar*_*ark 4 sqlite android cordova

目前的代码按照...的顺序读取内容

DoAnything() {
  OpenTheDatabase()
  // ... Do all the things! ...
}
Run Code Online (Sandbox Code Playgroud)

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

数据库打开如下:

var db = window.openDatabase( ... paramters ... );
Run Code Online (Sandbox Code Playgroud)

没有.closeDatabase功能,或文档不完整.我认为以下可能就足够了:

db=null;
Run Code Online (Sandbox Code Playgroud)

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

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

Tom*_*son 8

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

当应用程序关闭时,您可以依靠浏览器关闭所有内容 - 考虑到Web上的平均代码质量,浏览器必须非常擅长清理.

将db设置为null并让垃圾收集器执行其操作可能也会起作用,但最好不要首先创建额外的对象.

  • 不确定特定浏览器的内部,但当下载页面加载时,在一个页面上设置的所有内容都应该消失.我自己的应用程序无论如何都是单页 - 如果通过页面更改清除应用程序状态会更加困难. (2认同)