JS очень медленно работает
Делаю игру на JS, очень сильно виснет.
Проведя профилирование в Opera GX выяснил, что ws.onmessage замедляет работу:
Код на 835 строчке:
ws.onmessage = message => {
const response = JSON.parse(message.data);
if (response.method === "connect"){
clientID = response.clientID;
loginWind.style.display = 'none';
logo.style.display = 'none';
version.style.display = 'none';
canvas.style.display = '';
news.style.display = 'none';
messageBox.style.display = 'none';
messageBox.innerHTML = "";
sendNick = {
"method": "nick",
"clientID": clientID,
"nick": name
}
sendWS(JSON.stringify(sendNick), ws)
}
if (response.method === "gameData"){
render(response);
}
if (response.method === "disconnect"){
Reason = response.reason;
ws.close();
}
}
Строка
if (response.method === "gameData"){
отвечает за отображение игры. Что здесь не так?
P.S. Немного изменил систему отрисовки. Раньше было 2 холста, один невидимый, а другой основной. На невидимом рисовалась игра, а потом на видимый переносилась картинка. Сейчас один холст, профилирование такое:
