Javascript Json解析更快的替代方案

Javascript Json解析更快的替代方案,javascript,json,http,xmlhttprequest,esp32,Javascript,Json,Http,Xmlhttprequest,Esp32,我有一个esp32芯片(带有WiFi通信的32位微控制器),可以将重要数据记录到本地内存中。我需要将这些数据发送给用户webbrowser以绘制图表。它大约每小时1MB,我需要有最多5天数据(最多120MB原始数据)的图表 目前,我已经编写了一个http服务器和JSON解析器。当用户请求数据时,从内存中读取原始数据并将其解析为JSON以进行打磨。将原始数据解析为文本json会导致将每个1MB(原始)扩展为大约2MB(文本) 本地浏览器等待JSON文件,并使用JS JSON.parse(this.

我有一个esp32芯片(带有WiFi通信的32位微控制器),可以将重要数据记录到本地内存中。我需要将这些数据发送给用户webbrowser以绘制图表。它大约每小时1MB,我需要有最多5天数据(最多120MB原始数据)的图表

目前,我已经编写了一个http服务器和JSON解析器。当用户请求数据时,从内存中读取原始数据并将其解析为JSON以进行打磨。将原始数据解析为文本json会导致将每个1MB(原始)扩展为大约2MB(文本)

本地浏览器等待JSON文件,并使用JS JSON.parse(this.responseText)将其解析为对象以添加到数组中

JSON.parse占用了很多时间!每2MB约5秒(1MB未加工)

函数loadChartData(地址){
var xhttp=newXMLHttpRequest();
xhttp.onreadystatechange=loadChartDataReady;
xhttp.open(“GET”http://192.168.1.1/“+地址,正确);
xhttp.send();
}
函数loadChartDataReady(){
如果(this.readyState!=4)返回;
如果(this.status!=200){return;}
试一试{
var json=json.parse(this.responseText);
for(var i=1;i
我在想我能做些什么来加速我的代码 在使用的内存和执行时间方面

  • 我可以用javascript解析原始数据吗
  • 我可以将JSON.parse更改为其他函数以加快速度吗
  • 我是否可以将XMLHttpRequest更改为另一种格式,以便在数据仍在发送时开始解析数据

也许您需要发出多个请求,而不是一个。我已将我的请求拆分为1MB(原始)数据块。浏览器请求这些1MB,而不是解析,而不是请求下一个块
function loadChartData(address) {
    var xhttp = new XMLHttpRequest();
    xhttp.onreadystatechange = loadChartDataReady;
    xhttp.open("GET", "http://192.168.1.1/"+address, true);
    xhttp.send();
}
function loadChartDataReady() {
    if (this.readyState != 4) return;
    if (this.status != 200) { return; }
    try {
        var json = JSON.parse(this.responseText);
        for(var i = 1; i < json.length; i++) {
            var obj = json[i];
            series.splice(i - 1, 0, {ts: obj[0], time: obj[1], s: obj[2], m: obj[3], on: obj[4]} );
        }
        updateChart();
    } catch(err) {
        console.log("error: " + err);
    }
}