Loading...
Оценка сайтов | Игра на Laravel elnowars.ru!

Вилы Выкидные (13.07.2021 в 17:39)


это всего лишь анимация, тебе один раз нужно взять данные с сервера и делать анимацию на JS, а на сервере только при обновлении делать просчёты и обновлять БД, а так ты аяксом постоянно долбишь вычисления

Анимация идёт от того какие данные пришли в ответе от сервера, а на сервере только при обновлении раунда или при вашей атаке или атаке ботов идут запросы в базу и все вычисления.
gisen (13.07.2021 в 18:34)

Повторяю, таймер всего 1. И он просто обновляется когда с axios.get('/allbattle/round').... или с других запросов приходит ответ, по сути этот таймер нужен только для того чтобы вы знали сколько у вас времени для удара и использования банок и если вы не ударили, то ход переходит к другому axios.get('/allbattle/round')... по завершению таймера. Ни каждый запрос на сервер берет данные с базы.
Запросы на сервер от клиента идут по очереди с задержкой

if (response.data.next === true && this.next == 3) {
this.next = 4
setTimeout(() => {
this.getOpponent()
}, 450)
}

Если пришёл ответ от axios.get('/allbattle/round')... то через пол секунды запрашиваем информацию по оппоненту, далее в оппоненте смотрим, пришёл ли ответ и запускаем атаку ботов и так по кругу.


таймер один но запущен несколько раз *arbuz*
gisen (13.07.2021 в 18:38)

Анимация идёт от того какие данные пришли в ответе от сервера, а на сервере только при обновлении раунда или при вашей атаке или атаке ботов идут запросы в базу и все вычисления.


и так каждый такт таймера *arbuz*
Вилы Выкидные (13.07.2021 в 18:47)


таймер один но запущен несколько раз *arbuz*

Нет, он запускается всего 1 раз при монтировании

mounted() {
this.setTimeoutOne()
},
// И уже в methods просто идёт отсчёт раз в секунду
methods: {
setTimeoutOne() {
setTimeout(() => {
this.timer--
this.setTimeoutOne()
}, 1010)
},
}

А с запросов просто обновляем время this.timer
________
посл. ред. 13.07.2021 в 19:15; всего 1 раз(а); by gisen
gisen (13.07.2021 в 19:14)

Нет, он запускается всего 1 раз при монтировании

mounted() {
this.setTimeoutOne()
},
// И уже в methods просто идёт отсчёт раз в секунду
methods: {
setTimeoutOne() {
setTimeout(() => {
this.timer--
this.setTimeoutOne()
}, 1010)
},
}

А с запросов просто обновляем время this.timer


у тебя в браузере запускается очередной таймер в то время как предыдущий не удалён и продолжает работу

либо ты подгружаешь скрипт ещё раз в блок в котором уже был подгружен такой скрипт и так в геометрической прогрессии

короче долго пояснять
Вилы Выкидные (13.07.2021 в 20:09)


у тебя в браузере запускается очередной таймер в то время как предыдущий не удалён и продолжает работу

либо ты подгружаешь скрипт ещё раз в блок в котором уже был подгружен такой скрипт и так в геометрической прогрессии

короче долго пояснять

Походу ты меня не понял, ты описываешь вообще то чего нет в коде. Я использую VUE если что.
Вилы Выкидные (13.07.2021 в 20:09)


у тебя в браузере запускается очередной таймер в то время как предыдущий не удалён и продолжает работу

либо ты подгружаешь скрипт ещё раз в блок в котором уже был подгружен такой скрипт и так в геометрической прогрессии

короче долго пояснять

Он просто по логике не может запуститься много раз, он запустился 1 раз и больше не удаляется в течении всего боя, туда просто добавляется время.
Вилы Выкидные, mounted() {
this.setTimeoutOne()
}, В VUE происходит 1 раз при первой загрузки страницы. И далее по коду нигде не вызывается this.setTimeoutOne(), только сам себя каждую секунду.
gisen, какая разница в том, как ты неправильно юзаешь JS, открой инструменты разработчика и посмотри сколько у тебя ОДИН И ТОТ ЖЕ скрипт раз запускается при каждом действии *molot*
Вилы Выкидные (13.07.2021 в 21:10)
gisen, какая разница в том, как ты неправильно юзаешь JS, открой инструменты разработчика и посмотри сколько у тебя ОДИН И ТОТ ЖЕ скрипт раз запускается при каждом действии *molot*

Ну так и задумано запускать каждое действие примерно раз в 2 секунды.
Онлайн: 1
Время:
Gen. 0.1065
(c) ByMAS.RU 2010-2025