Javascript 多个JSON数据日志并放入服务器
我有一个javascript函数,它在每一秒生成JSON数据,然后将其放到云服务器上。现在我不想实时发布,而是想把这些数据记录在一个缓冲区中,并说在n个数据日志之后,我将把它们放到云中。例如,我想在10秒内记录50个数据点,然后在服务器上加上时间戳 现在JSON数据通过varJavascript 多个JSON数据日志并放入服务器,javascript,json,Javascript,Json,我有一个javascript函数,它在每一秒生成JSON数据,然后将其放到云服务器上。现在我不想实时发布,而是想把这些数据记录在一个缓冲区中,并说在n个数据日志之后,我将把它们放到云中。例如,我想在10秒内记录50个数据点,然后在服务器上加上时间戳 现在JSON数据通过varfromDatan传递。JSON数据格式为 {"value":"-2.1282838391939194"} 现在代码是: var acc; var watchID = null; function startWa
fromDatan
传递。JSON数据格式为
{"value":"-2.1282838391939194"}
现在代码是:
var acc;
var watchID = null;
function startWatch() {
//set frequency of accelerometer update.1000 = 1 second
var options = { frequency: 1000 };
watchID = navigator.accelerometer.watchAcceleration(onSuccess, onError, options);
}
function stopWatch() {
if (watchID) {
navigator.accelerometer.clearWatch(watchID);
watchID = null;
}
}
//DISPLAY ACCELERATION DATA
function onSuccess(acceleration) {
acc = acceleration;
var element = document.getElementById("accelerometer");
element.innerHTML = 'Acceleration X: ' + acceleration.x + '<br />' +
'Acceleration Y: ' + acceleration.y + '<br />' +
'Acceleration Z: ' + acceleration.z + '<br />' +
'Timestamp: ' + acceleration.timestamp + '<br />';
datalock();
}
function postdata () {
var accx = acc.x;
alert(accx);
var fromDatan = JSON.stringify(fromData);
alert(fromDatan);
//POST JSON SENSOR DATA
$.ajax({
url: "http://abcd.com",
headers: {
"X-API-KEY": "2b9asdedqedqxdqd7956e6f7a",
"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));
}
});
return false;
//var fromData = {};
}
var fromData;
var jsonCounter = 0;
function datalock(){
alert("Entering");
fromData.push({
value: accx.toString(),
});
jsonCounter++;
// post only after 10 entries
if (jsonCounter >= 10) {
postdata ();
jsonCounter = 0; // reset
};
//var fromData; // make it global as it is used in other function.
}
var-acc;
var-watchID=null;
函数startWatch(){
//设置加速计更新频率。1000=1秒
var选项={频率:1000};
watchID=navigator.Accelerator.watchAcceleration(onSuccess、onError、options);
}
功能秒表(){
if(watchID){
navigator.Accelerator.clearWatch(watchID);
watchID=null;
}
}
//显示加速度数据
成功时的功能(加速){
acc=加速度;
var元素=document.getElementById(“加速计”);
element.innerHTML='Acceleration X:'+Acceleration.X+'
'+
“加速度Y:”+加速度.Y+”
”+
“加速度Z:”+加速度.Z+”
”+
'时间戳:'+acceleration.Timestamp+'
';
数据锁();
}
函数postdata(){
var accx=acc.x;
警报(accx);
var fromDatan=JSON.stringify(fromData);
警报(fromDatan);
//后JSON传感器数据
$.ajax({
url:“http://abcd.com",
标题:{
“X-API-KEY”:“2B9ADEDQEDQXDQD7956E6F7A”,
“内容类型”:“应用程序/json”
},
键入:“放置”,
数据:fromDatan,
数据类型:“JSON”,
成功:函数(fromData、status、jqXHR){
警报(JSON.stringify(fromData));
},
错误:函数(jqXHR,状态){
警报(JSON.stringify(jqXHR));
}
});
返回false;
//var fromData={};
}
var-fromData;
var jsonCounter=0;
函数datalock(){
警报(“进入”);
fromData.push({
值:accx.toString(),
});
jsonCounter++;
//只在10个条目后发布
如果(jsonCounter>=10){
postdata();
jsonCounter=0;//重置
};
//var fromData;//在其他函数中使用时将其设置为全局。
}
但代码现在不起作用。请告诉我问题出在哪里。虽然所有其他的事情都是正确的,但是我不能正确地执行推送。谁能帮帮我吗?它只是在点击“进入警报。就这样。不运行
postdata()
您的代码是否生成了9个以上的计数器?”?