Решил отказаться от Ajax и все взаимодействие с сервером провожу через вебсокеты.
Все стандартно: получаю, отправляю запросы. Однако, столкнулся с таким неудобством: я не могу, как при использовании Ajax, обработать ответ сервера в том же месте кода, в котором и был отправлен запрос. Приходится отправлять сообщение и где-то там, в структуре проекта, создавать обработчик в ответ на это сообщение, в котором мне надо просто вывести alert (условно)
По факту, в некоторых случаях запись типа ws.send(message).then()....
мне бы идеально подошла, но как я понимаю с вебсокетами так не получится.
Или получится?
UPDT: В ожидании внимания к вопросу набросал такой класс.
`class WS {
constructor(wsAddr) {
this.$ws = new WebSocket(wsAddr);
}
get(message){
const {type} = message;
return new Promise((resolve, reject) =>{
this.$ws.send(JSON.stringify(message));
this.$ws.addEventListener('message', (res)=>{
const data = JSON.parse(res.data);
if (data.type === type){
resolve(data)
}
});
})
}
};`
Код работает, мою задачу выполняет. Теперь я могу писать:
ws.get().then(res)....
Но возникают всякие вопросы: не превышу ли я какой-нибудь лимит по слушателям? Что будет если в момент запроса придет другое сообщение от сервера? и другие вопросы, о которых я и не подозреваю
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Доброе время суток! Вопрос вот в чем : Есть ТАБы(кнопки) при нажатии на каждый из которых добавляется класс active, на кокой ТАБ нажал, тому и добавился...
Собственно как заставить PJAX сделать запрос на сервер и обновить страницу без перезагрузки не нажимая на ссылкуПробовал следующее
Вот часть моего кода, он срабатывает по кнопке и делает некоторые вычисленияКак можно обнулить (очистить) массив, что бы не создавались дополнительные...