如果本地存储空间不足,该怎么办

时间:2015-11-10 13:03:38

标签: arrays json angularjs local-storage session-storage

我在angularjs中进行了一些测试项目。在加载应用程序后,我将用户存储到本地存储中。用户包含项目的数组列表。但现在我想要一个任务列表的数组列表,其中还包含一系列项目。

所以结构会是这样的,不确定json是否完全正确,但它用来说明问题:

{
    "user": {
        "items": [
            {"name":"Beer"},
            {"name":"Wine"}
            ....
        ],
        "taskitems": [
            {"name":"taskitems1",
               "items": [
            {"name":"Beer"},
            {"name":"Wine"}
            ....
        ],

    }
}

现在假设用户有20个属性,并且item数组中有2000个项目。我有1000个任务项目,都有2000个项目。并且列表不断增长,直到本地存储太小。什么是更好的方法来确保我不会过度使用本地存储。

修改 这就是我现在存储数据的方式

function Create(client) {

    // gives the client the right id
    client.fkIdUser = $localStorage.userid;

    //add the client to the database
    $http.post('/api/addclient', client).success(function(){

        //wait for the list of clients
        $http.get('/api/getlistclients').success(function(data) {

            //Replacing the clientArray with the new array
            $localStorage.clientArray = data

        })

    });

}

现在我试图在不将数据存储到localstorage中的情况下执行此操作:

function GetArray() {


    $http.get('/api/getlistclients').success(function(data) {

            //Replacing the clientArray with the new array
            return data

    });

}

但我调用数据我得到一个错误预期一个数组但得到'函数GetArray()'。

$scope.clientlist = ClientService.GetArray;

但如果我使用localStorage它可以正常工作:

$scope.clientlist = $localStorage.clientArray;

Edit2

所以在视图的控制器里面我做了类似这样的事情似乎工作正常但我不能从服务中调用它,因为数据没有按时加载到数组中。

var vm = this;

//wait for the list of clients
$http.get('/api/getlistclients').success(function(data) {

    //Replacing the clientArray with the new array
    vm.clientArray = data;
    console.log(vm.clientArray);
    // creating list for ui-select
    $scope.client = {};

    $scope.clientlist = vm.clientArray;

})

0 个答案:

没有答案