JSON数据记录到缓冲区和PUT到服务器

时间:2014-08-21 06:17:24

标签: javascript html json

我有一个javascript函数,它每隔一定时间生成一次JSON数据,然后将它放到云服务器上。现在我不想实时发布POST,而是想将这些数据记录在一个缓冲区中,然后在n个数据日志之后说我将PUT转为云。例如,我想在10秒内记录50个数据点,然后使用时间戳我将PUT发送到服务器

现在JSON数据通过var fromDatan传递。 JSON数据格式是

{"values": [ { "at": "2014-08-17T12:00:00Z", "value": "15" }]}

这是一个单个实例,它通过说var fromDatan并在云端进行PUT。

现在我想记录n个JSON数据。即

{ "values": [ { "at": "2014-08-17T12:00:00Z", "value": "15" }, { "at": "2014-08-18T12:00:00Z", "value": "20" }, { "at": "2014-08-19T12:00:00Z", "value": "25" } ] }

然后我会投入云计算。这是我实时的PUT代码:

$.ajax({
                url: "https://abcd.com",
                headers: {
                    "X-API-KEY": "23dq3dq3ddbb16a7956e6f7a",
                    "Content-Type": "application/json"
                },
                type: "PUT",
                data: fromDatan,
                dataType: "JSON",
                success: function(fromData, status, jqXHR) {
                    alert(JSON.stringify(fromData));
                },

                error: function(jqXHR, status) {
                    alert(JSON.stringify(jqXHR));
                }
                });

所以请让我知道如何做到这一点。帮帮我

1 个答案:

答案 0 :(得分:3)

每秒运行的代码应该执行:

fromDatan.values.push({
    at: timestamp,
    value: value
});
if (fromDatan.values.length >= 50) {
    $.ajax( {
        ...
    });
    fromDatan.values = [];
};