Сообщение от ksa
|
Можно новый запрос посылать лишь получив ответ на предыдущий запрос...
Так не будет "кучи" запросов без ответов.
|
Не подскажите как это сделать в коде? JS не знаю практически. И ще такой момент, надо чтобы не просто сервер был готов отправить новый массив на запрос клиента, но и чтобы это еще успевало прорисовываться на графике (использую Chart js). А то получиться так, что сервер посылать будет часто, а браузер отрисовывать не будет успевать.
Может еще сможете подсказать по такой проблеме:
Не перестраивается график ни в какую
function Timer2(){
xhr.open("GET", "content.bin?r=" + Math.random(), true);
xhr.responseType = "arraybuffer";
xhr.onload = function (oEvent) {
var uint16Array = new Uint16Array(this.response);
for(var i = 0; i < 256; i++)
{
data16Array1[i] = uint16Array[i];
data16Array2[i] = uint16Array[i+256];
}
ChartUpdate(myChart, data16Array1, data16Array2);
}
xhr.send(null);
idTimer2 = setTimeout(Timer2, 1000);
}
function ChartUpdate(chart, data1, data2){
chart.data.datasets[0].forEach((dataset) => {
dataset.data.push(data1);
});
chart.data.datasets[1].forEach((dataset) => {
dataset.data.push(data2);
});
chart.update();
}
До этого пробовал так
function Timer2(){
xhr.open("GET", "content.bin?r=" + Math.random(), true);
xhr.responseType = "arraybuffer";
xhr.onload = function (oEvent) {
var uint16Array = new Uint16Array(this.response);
for(var i = 0; i < 256; i++)
{
data16Array1[i] = uint16Array[i];
data16Array2[i] = uint16Array[i+256];
}
myChart.data.datasets[0].data = data16Array1;
myChart.data.datasets[1].data = data16Array2;
myChart.update();
}
xhr.send(null);
idTimer2 = setTimeout(Timer2, 1000);
}
Вообще никак, хотя вроде все логично по коду