Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   Работа с локальным хранилищем, как с объектом (https://javascript.ru/forum/project/28192-rabota-s-lokalnym-khranilishhem-kak-s-obektom.html)

Deff 31.05.2012 16:51

Цитата:

Сообщение от GuardCat
Deff, может проще тогда в callback запроса вставить следующий запрос по setTimeout? Тогда и ошибку можно обработать и не получится такого, что запрос пытаемся повторить до того, как пришёл ответ на предыдущий? Гибче setTimeout.

Хм - а чем плоха проверка флага, (установленного callback возможного ответа) в запущенной setInterval функции, там можно и новый запрос прицепить, в зависимости от флага? - у мну ощущение, что все таки один setInterval меньше жрёт чем несколько setTimeout.

Gozar 31.05.2012 19:18

Цитата:

Сообщение от GuardCat
Например, всегда памяти расходуется больше после установки таймера и всегда часть её высвобождается после отработки таймера.

Память может не успеть высвободится прежде чем приложение рухнет вместе с браузером.

Я привести тест(визуализация действий пользователя в админке) не могу, слишком сложно его воспроизводить, но у меня первая упала Опера 12, затем Firefox12 и затем Chrome 7-19 из-за того что setTimeout сожрал всю память.

Твой тест не сильно поможет при создании сложного приложения, которое работает больше 20 минут. Я такие тесты вообще перестал делать. Тестирую часами, по 8 - 12 часов. К сожалению не знаю как сделать это по другому, но возможно, что никто не знает.

Deff 31.05.2012 19:27

GuardCat,
Ну у мну запрос отправлялся раз в час, быстрее данные не обновлялись, ксать как то работало с неделю без перезагрузки.. Хотя я рекомендовал раз в день, Да браузер был Гугол Хром

GuardCat 31.05.2012 22:40

Gozar, да, я понимаю, что запускать новый gmail, руководствуясь моим опытом, не стоит =)

Опыт с 8--12 часами работы приложения можно приблизить к реальности, наняв гастарбайтера и предложив ему понажимать всё подряд на экране в течение этого времени =)

Gozar 01.06.2012 00:10

Цитата:

Сообщение от GuardCat
я понимаю, что запускать новый gmail, руководствуясь моим опытом, не стоит =)

Почему? Как ты собираешься получить нужный тебе опыт, если он тебе конечно нужен?

GuardCat 01.06.2012 06:13

Gozar, говоря "мой опыт", я подразумеваю опыт в смысле "эксперимент". Я про это своё исследование setTimeout.

Да и js в данный момент для меня просто хобби, а не область профессиональных интересов.

GuardCat 01.06.2012 13:58

Deff, вот поэтому я избегаю использовать setInterval, предпочитая многократный setTimeout.

Gozar 01.06.2012 14:35

Цитата:

Сообщение от GuardCat
js в данный момент для меня просто хобби, а не область профессиональных интересов.

Что не мешает и не противоречит одно другому.

Я говорил немного о другом. Скорее о том, что при использовании долгоиграющих функций и setTimeout входит в их число очень легко наступить на грабли, даже не подозревая об этом.

Ух ты у меня карма 166. Похоже сегодня Пятница 13 по Чучхенскому календарю. :blink:

B~Vladi 01.06.2012 14:43

Прелесть использования setTimeout ещё и в том, что время задержки можно корректировать при каждом следующем запуске функции, в зависимости от того, на сколько задержался предыдущий таймер.

Суммарное время таймеров при этом будет правильным настолько, насколько это вообще возможно в браузере.

Это хорошо видно при анимации: если произошел лаг (а это частое явление) - следующий шаг будет уже больше, уменьшая время, оставшееся до конца анимации. И это правильно.

Deff 01.06.2012 15:27

Цитата:

Сообщение от B~Vladi
Прелесть использования setTimeout

Cобственно Спорный довод, посколь существует
clearInterval, и перезапуск, и У мну жуткое подозрение что setTimeout и
setInterval формируются одинаково, ток у setTimeout стоит однократный флаг исполнения завершающий функцию, очевидно, еще и чистит дефолтное или установленное Timerid


Часовой пояс GMT +3, время: 18:57.