|
0 / 0 / 0
Регистрация: 16.07.2012
Сообщений: 103
|
|
Асинхронность javascript16.04.2013, 14:17. Показов 1474. Ответов 9
Метки нет (Все метки)
Не уверен, является ли то, о чём хочу спросить, асинхронностью. И может я чего-то не понимаю. Но надеюсь на вашу помощь.
Пример: есть форма. По клику на submit значения полей этой формы заносятся в свойства объекта. Объект сохраняется в LocalStorage. Страница перегружается. Так должно работать в идеале. На самом деле работает так: значения полей начинают заносится в свойства объекта, но не успевает сохраниться сам объект, как перегружается страница. Т.е. кусок кода с перезагрузкой страницы выполняется раньше кода с объектом. Приходится перегрузку страницы загонять в setTimeout и подбирать значение задержки. Но это же кастыль какой-то.) может кто-нибудь подскажет, как бороться с таким явлением? Потому что у маня часто возникают подобные ситуации, когда фрагмент кода должен выполняться только после другого фрагмента, а на практике они выполняются одновременно и в итоге получается бред.)
0
|
|
| 16.04.2013, 14:17 | |
|
Ответы с готовыми решениями:
9
SetTimeout, clearTimeout - асинхронность, однопоточность Вставка элементов меню (содержащих javascript) через javascript |
|
Дзен-программист
122 / 87 / 16
Регистрация: 10.04.2013
Сообщений: 253
|
|
| 16.04.2013, 14:21 | |
|
maxwad, в ответ на возникновение события submit формы нужно вернуть false, тогда страница перезагружаться не будет (перезагрузить её вы можете сами, из своего кода, после сохранения данных в объект).
Добавлено через 1 минуту Да, асинхронность здесь действительно ни при чём.
0
|
|
|
0 / 0 / 0
Регистрация: 16.07.2012
Сообщений: 103
|
|
| 16.04.2013, 14:27 [ТС] | |
|
Вы не поняли. Я так и делаю. Но в конце мне надо перегрузить страницу. И я делаю это сам, принудительно. Но если не обёртывать setTimeout'ом, то объект не успевает сохранится.
0
|
|
|
Дзен-программист
122 / 87 / 16
Регистрация: 10.04.2013
Сообщений: 253
|
|
| 16.04.2013, 14:48 | |
|
maxwad, простите, бываю невнимателен. Вообще странно очень. Может быть, у объекта localStorage есть какой-то метод, отвечающий за выполнение callback'ов после сохранения объекта?
И да, тогда асинхронность очень даже причём... Добавлено через 15 минут maxwad, в API по localStorage я не нашёл ничего даже отдалённо похожего на возможность передавать функцию как аргумент методов localStorage. Есть вероятность, что это недочёт (или сознательное игнорирование) со стороны разработчиков стандарта/браузеров.
0
|
|
|
0 / 0 / 0
Регистрация: 16.07.2012
Сообщений: 103
|
|
| 16.04.2013, 15:16 [ТС] | |
|
Ну это не связано именно с технологией LocalStorage. Это я просто как примет привёл. Был ещё такой вот момент, например:
Проверяю значение input'а типа number. И если оно больше определённого значения, то выводится сообщение, а потом должна перегружаться страница. На самом деле происходит так: можно заметить только как это сообщение начинает появляться - и тут же страница перегружается. Ну и в током роде много всяких косяков.)
0
|
|
|
Дзен-программист
122 / 87 / 16
Регистрация: 10.04.2013
Сообщений: 253
|
|
| 16.04.2013, 15:26 | |
|
maxwad, сообщение как выводится: через alert, console.log или абсолютно позиционированный элемент? Просто из них синхронный только alert.
0
|
|
|
0 / 0 / 0
Регистрация: 16.07.2012
Сообщений: 103
|
|
| 16.04.2013, 15:30 [ТС] | |
|
Да, я знаю, alert останавливает скрипт. Но у меня свой собственный блок. Стилизованный под всплывающее сообщение.
0
|
|
|
Дзен-программист
122 / 87 / 16
Регистрация: 10.04.2013
Сообщений: 253
|
||||||
| 16.04.2013, 15:46 | ||||||
|
maxwad, наверняка через jQuery создаёте (fadeIn/fadeOut)? Если да, то функцию перезагрузки можете в callback к fadeIn передавать:
0
|
||||||
|
0 / 0 / 0
Регистрация: 16.07.2012
Сообщений: 103
|
|
| 16.04.2013, 15:53 [ТС] | |
|
Ну это в итоге я и сделал, да.) Но меня интересует вопрос решения не отдельных проблем, а проблемы асинхронности в целом. Может есть какая-то функция, регистратор очереди, чтоб можно было обернуть фрагмент кода и он выполнялся строго последовательно?)
0
|
|
|
Дзен-программист
122 / 87 / 16
Регистрация: 10.04.2013
Сообщений: 253
|
|
| 16.04.2013, 16:02 | |
|
maxwad, а всё равно всё через setTimeout/setInterval реализуется (в случае с тем же fadeIn). Так что только такой универсальный регистратор возможен только для асинхронных объектов, в методы которых можно передать callback. Либо же - setTimeout, но тут уже об универсальности речи нет.
0
|
|
| 16.04.2013, 16:02 | |
|
Помогаю со студенческими работами здесь
10
Javascript (codeacademy - "'WHILE' LOOPS IN JAVASCRIPT(Dragon Slayer!)") Синхронность/асинхронность
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
|
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|