使用data.js做爲統一的數據存儲中心

場景

平時在js中存儲數據的場景仍是不少的,好比:git

var data;

$.get("http://demo.com/api", {}, function(res) {
    data = res;
    // ...
});

這時候ajax獲取的數據被緩存到data中,這種場景及其廣泛。假設忽然這個被改爲一個函數:github

function getData(params) {
    var data;
    $.get("http://demo.com/api", params, function(res) {
        data = res;
        // ...
    });
}

這時候想在外面獲取data,就得修改原來的代碼,一種方式就是把return data,另外一種是把data定義到函數外面。ajax

這時候,這個js要被改爲模塊:api

define("getData", function(require, module, exports) {

    var data;
    function getData(params) {
        $.get("http://demo.com/api", params, function(res) {
            data = res;
            // ...
        });
    }

    module.exports = getData;

});

這時候悲催了,想在別的模塊使用data,又得繼續修改代碼,隨着項目增大,代碼越改越亂。緩存

data.js

這種狀況,就能夠使用data.js做爲數據的統一存儲中心:函數

define("getData", function(require, module, exports) {

    var Data = require("data.js");

    function getData(params) {
        $.get("http://demo.com/api", params, function(res) {
            Data.set("apiData", res);
            // ...
        });
    }

    module.exports = getData;

});

在另外一個模塊就能夠這麼獲取數據:ui

var Data = require("data.js");
var apiData = Data.get("apiData");

數據存儲獨立存在於函數模塊,使用起來很是方便。code

項目

Github地址:data.jsget

項目代碼很是很是簡單,可是思路很重要哈~it

相關文章
相關標籤/搜索