AngularJS + IndexedDB,一次打开数据库供所有控制器使用,还是分别为每个请求打开数据库?

CodeVirtuoso

如标题中所述,在AngularJS中使用IndexedDB时,我遇到了这样的难题,并且不确定采用哪种正确方法。

  1. 在许多教程中,数据库只打开一次,仅此而已,所有方法都使用一个连接。

  2. 在一个特定的AngularJS示例中,数据库打开请求以及所有CRUD方法都包装在一个工厂中,控制器一加载,就调用open方法,所有CRUD方法都在此控制器中。

  3. 我知道这是使控制器保持苗条状态,使其更可重用的一种好习惯。因此,我为每个CRUD方法都有单独的控制器,这意味着我需要一个单独的调用来为每个请求打开数据库,如下所示:

    websiteService.openDatabase().then(function() {
        websiteService.addWebsite($scope.website.url, $scope.website.color).then(function() {
    
        }, function(err) {
            console.log(err);
        });     
    }); 
    

因此,每次我想要时addWebsite,我都会先openDatabase等待诺言解决。

websiteService 是一个工厂,使用IndexedDB的所有方法都是

这里的最佳做法是什么?如果还有另一种方法(此处未提及),请务必提及。

如果有帮助,请参见完整的控制器代码:

app.controller('AddWebsiteCtrl', ['$scope', '$location', '$routeParams', 'websiteService', function($scope, $location, $routeParams, websiteService) {
    $scope.save = function() {
        websiteService.openDatabase().then(function() {
            websiteService.addWebsite($scope.website.url, $scope.website.color).then(function() {

            }, function(err) {
                console.log(err);
            });     
        });     
        $location.path('/overview');
    };

    $scope.cancel = function() {
        $location.path('/overview');
    };  
}]);
乔希

不幸的是,这个问题是有争议的。我个人建议每次打开数据库。其他人则会不同意(并且会有很多)。

如果可以保证建立连接总是发生数据库请求,则可以使用单个连接。如果不确定indexedDB在各种浏览器中的工作方式,或者不能保证已建立连接,或者不能保证连接仍处于打开状态,请为每个单独的任务打开一个连接。

如果您知道异步代码通常是如何工作的,那么您可能会做一切尽力而为的事情,因为从技术上讲这两种方法都不对。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

PHP数据库angularjs

来自分类Dev

如何使用AngularJS查询数据库?

来自分类Dev

AngularJS分页数据库数据

来自分类Dev

将数组从数据库传递到控制器 AngularJs

来自分类Dev

如何一次处理所有数据并应用于 angularjs 中的控制器

来自分类Dev

如何使用AngularJS更新/编辑数据库中的数据

来自分类Dev

使用AngularJS将数据插入数据库

来自分类Dev

在angularJs中模拟数据库操作?

来自分类Dev

显示来自数据库AngularJS的值

来自分类Dev

在angularJs中模拟数据库操作?

来自分类Dev

AngularJS向数据库发布空白

来自分类Dev

AngularJS 从数据库插入和显示

来自分类Dev

AngularJS应用:一次从JSON加载数据并在多个控制器中使用

来自分类Dev

使用JSON动态下拉AngularJS和数据库

来自分类Dev

如何使用AngularJS捕获数据库列?

来自分类Dev

在AngularJs中从数据库中获取并显示数据

来自分类Dev

在AngularJs中从数据库中获取并显示数据

来自分类Dev

AngularJS-从Oracle数据库获取数据

来自分类Dev

在AngularJS中使用数据库-我应该在哪里编写数据库连接代码?

来自分类Dev

一次导入所有mysql数据库

来自分类Dev

如何为AngularJS的数据库创建JSON API?

来自分类Dev

用于数据库服务的AngularJS单元测试

来自分类Dev

Mean.js angularjs查询mongodb数据库

来自分类Dev

angularjs选择框基于数据库ID的默认选择

来自分类Dev

如何为AngularJS的数据库创建JSON API?

来自分类Dev

AngularJS从Laravel数据库中删除数组项

来自分类Dev

Mean.js angularjs查询mongodb数据库

来自分类Dev

将JSON AngularJS结构传递给mongoDB数据库

来自分类Dev

AngularJS / .NET Core架构中的数据库事务

Related 相关文章

热门标签

归档