Зависают браузеры под masOS X
Есть достаточно массивный кусок кода на javascript
все загружается, все работает, но под макосью, если начать перезагружать страницу, независимо от того выполняется что или уже все выполнилось, то safari, opera, и firefox намертво виснут (хром спокоен). Проверял на нескольких машинах. под Linux, FreeBSD и Windows все Ок, во всех браузерах. Кто нибудь сталкивался с подобным? |
Мож таймеры не сброшены? Или реквесты весят. В любом случае остались потоки и семафор не дает работать дальше.
Тут явно проблема браузера. Я бы начал копать именно с того о чем сказал. |
vladlen,
прочитал умные слова в нете ? почему именно семафор, а не мьютекс ? |
я понимаю что таймеры не сброшены, но проблема что они и не должны быть сброшены, всегда 2-3 таймера.
|
Цитата:
Цитата:
Цитата:
Новый хак узнаешь :) Самый верняковый метод - дебаг браузера :) |
сорр, не написал выше, если таймеры убрать то все работает, так же выяснилось что если оставить 1 таймер-не работает, убрать его - работает, таймер раз в секунду. возможно поможет если сделать его реже(не пробовал еше), то поможет, но реже в проекте его не сделать.
дебаг браузера С радостью, подскажи где взять исходники маковского сафари |
Цитата:
Ответ на твою проблему скорее всего прост: указатель на таймер присваивается чужой (уже занятой) переменной. Как результат - конфликт. |
>>Не думаю что это тебе нужно.
как ты прав) >>Исходники движка вполне себе открытый проект если я не ошибаюсь то движок у них с хромом одинаков, но хром единственное что не вылетает под Маком >>указатель на таймер присваивается чужой (уже занятой) переменной. есть большой объект, и интервал устанавливается только раз: this.player_interval = setInterval((function(){ var ts = this.FlashAPI.getTimePlayback(); if (ts){ this.set_play_marker_time(ts); } }).bind(this), this.player_interval_in_ms); еще попробую поиграться с переменными, плюс проверю как влияет время, и попробую таймаут использовать и на StackOverflow спрошу |
Цитата:
Поэтому и говорю: хоророшо что попробовал все системы и браузеры. Ответ попросту стал очевиден. Ты вызвал потоки, а они между собой законфликтовали. Цитата:
Цитата:
|
Часовой пояс GMT +3, время: 04:33. |