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

JSON data logging to buffer and PUT to server

本文关键字:PUT 服务器 缓冲区 记录 JSON 数据      更新时间:2023-09-26

我有一个javascript函数,它每隔一秒生成JSON数据,然后把它放到云服务器上。现在我不想实时POST,而是希望将此数据记录在缓冲区中,并在n个数据日志之后将PUT到云端。例如,我想在10秒内记录50个数据点然后使用时间戳将PUT到服务器

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

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

这是一个单独的实例,它正在通过var fromDatan并被放到云中。

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

{ "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到云。这是我的实时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));
                }
                });

所以请告诉我如何做到这一点。

每秒钟运行的代码应该做:

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