31.05.2012, 16:51
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
Сообщение от GuardCat
|
Deff, может проще тогда в callback запроса вставить следующий запрос по setTimeout? Тогда и ошибку можно обработать и не получится такого, что запрос пытаемся повторить до того, как пришёл ответ на предыдущий? Гибче setTimeout.
|
Хм - а чем плоха проверка флага, (установленного callback возможного ответа) в запущенной setInterval функции, там можно и новый запрос прицепить, в зависимости от флага? - у мну ощущение, что все таки один setInterval меньше жрёт чем несколько setTimeout.
Последний раз редактировалось Deff, 31.05.2012 в 16:54.
|
|
31.05.2012, 19:18
|
|
猫
|
|
Регистрация: 07.06.2007
Сообщений: 7,504
|
|
Сообщение от GuardCat
|
Например, всегда памяти расходуется больше после установки таймера и всегда часть её высвобождается после отработки таймера.
|
Память может не успеть высвободится прежде чем приложение рухнет вместе с браузером.
Я привести тест(визуализация действий пользователя в админке) не могу, слишком сложно его воспроизводить, но у меня первая упала Опера 12, затем Firefox12 и затем Chrome 7-19 из-за того что setTimeout сожрал всю память.
Твой тест не сильно поможет при создании сложного приложения, которое работает больше 20 минут. Я такие тесты вообще перестал делать. Тестирую часами, по 8 - 12 часов. К сожалению не знаю как сделать это по другому, но возможно, что никто не знает.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
|
|
31.05.2012, 19:27
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
GuardCat,
Ну у мну запрос отправлялся раз в час, быстрее данные не обновлялись, ксать как то работало с неделю без перезагрузки.. Хотя я рекомендовал раз в день, Да браузер был Гугол Хром
Последний раз редактировалось Deff, 01.06.2012 в 01:19.
|
|
31.05.2012, 22:40
|
|
Просто любитель
|
|
Регистрация: 13.09.2011
Сообщений: 300
|
|
Gozar, да, я понимаю, что запускать новый gmail, руководствуясь моим опытом, не стоит =)
Опыт с 8--12 часами работы приложения можно приблизить к реальности, наняв гастарбайтера и предложив ему понажимать всё подряд на экране в течение этого времени =)
|
|
01.06.2012, 00:10
|
|
猫
|
|
Регистрация: 07.06.2007
Сообщений: 7,504
|
|
Сообщение от GuardCat
|
я понимаю, что запускать новый gmail, руководствуясь моим опытом, не стоит =)
|
Почему? Как ты собираешься получить нужный тебе опыт, если он тебе конечно нужен?
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
|
|
01.06.2012, 06:13
|
|
Просто любитель
|
|
Регистрация: 13.09.2011
Сообщений: 300
|
|
Gozar, говоря "мой опыт", я подразумеваю опыт в смысле "эксперимент". Я про это своё исследование setTimeout.
Да и js в данный момент для меня просто хобби, а не область профессиональных интересов.
|
|
01.06.2012, 13:58
|
|
Просто любитель
|
|
Регистрация: 13.09.2011
Сообщений: 300
|
|
Deff, вот поэтому я избегаю использовать setInterval, предпочитая многократный setTimeout.
|
|
01.06.2012, 14:35
|
|
猫
|
|
Регистрация: 07.06.2007
Сообщений: 7,504
|
|
Сообщение от GuardCat
|
js в данный момент для меня просто хобби, а не область профессиональных интересов.
|
Что не мешает и не противоречит одно другому.
Я говорил немного о другом. Скорее о том, что при использовании долгоиграющих функций и setTimeout входит в их число очень легко наступить на грабли, даже не подозревая об этом.
Ух ты у меня карма 166. Похоже сегодня Пятница 13 по Чучхенскому календарю.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
|
|
01.06.2012, 14:43
|
|
Модератор Всея Форума
|
|
Регистрация: 14.05.2009
Сообщений: 4,021
|
|
Прелесть использования setTimeout ещё и в том, что время задержки можно корректировать при каждом следующем запуске функции, в зависимости от того, на сколько задержался предыдущий таймер.
Суммарное время таймеров при этом будет правильным настолько, насколько это вообще возможно в браузере.
Это хорошо видно при анимации: если произошел лаг (а это частое явление) - следующий шаг будет уже больше, уменьшая время, оставшееся до конца анимации. И это правильно.
__________________
Болтовня ничего не стоит. Покажите мне код. — Linus Torvalds
влад.куркин.рф
|
|
01.06.2012, 15:27
|
без статуса
|
|
Регистрация: 25.05.2012
Сообщений: 8,219
|
|
Сообщение от B~Vladi
|
Прелесть использования setTimeout
|
Cобственно Спорный довод, посколь существует
clearInterval, и перезапуск, и У мну жуткое подозрение что setTimeout и
setInterval формируются одинаково, ток у setTimeout стоит однократный флаг исполнения завершающий функцию, очевидно, еще и чистит дефолтное или установленное Timerid
|
|
|
|