Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.11.2010, 18:29
Интересующийся
Отправить личное сообщение для Falcon Посмотреть профиль Найти все сообщения от Falcon
 
Регистрация: 26.10.2009
Сообщений: 23

Зависают браузеры под masOS X
Есть достаточно массивный кусок кода на javascript
все загружается, все работает, но под макосью, если начать перезагружать страницу, независимо от того выполняется что или уже все выполнилось, то safari, opera, и firefox намертво виснут (хром спокоен). Проверял на нескольких машинах.

под Linux, FreeBSD и Windows все Ок, во всех браузерах.

Кто нибудь сталкивался с подобным?
Ответить с цитированием
  #2 (permalink)  
Старый 10.11.2010, 21:12
Аватар для vladlen
Кандидат Javascript-наук
Отправить личное сообщение для vladlen Посмотреть профиль Найти все сообщения от vladlen
 
Регистрация: 19.10.2010
Сообщений: 143

Мож таймеры не сброшены? Или реквесты весят. В любом случае остались потоки и семафор не дает работать дальше.
Тут явно проблема браузера. Я бы начал копать именно с того о чем сказал.
Ответить с цитированием
  #3 (permalink)  
Старый 11.11.2010, 12:06
Ламер
Отправить личное сообщение для DooMer Посмотреть профиль Найти все сообщения от DooMer
 
Регистрация: 19.02.2010
Сообщений: 295

vladlen,
прочитал умные слова в нете ? почему именно семафор, а не мьютекс ?
Ответить с цитированием
  #4 (permalink)  
Старый 11.11.2010, 13:28
Интересующийся
Отправить личное сообщение для Falcon Посмотреть профиль Найти все сообщения от Falcon
 
Регистрация: 26.10.2009
Сообщений: 23

я понимаю что таймеры не сброшены, но проблема что они и не должны быть сброшены, всегда 2-3 таймера.
Ответить с цитированием
  #5 (permalink)  
Старый 11.11.2010, 14:53
Аватар для vladlen
Кандидат Javascript-наук
Отправить личное сообщение для vladlen Посмотреть профиль Найти все сообщения от vladlen
 
Регистрация: 19.10.2010
Сообщений: 143

Сообщение от DooMer
почему именно семафор, а не мьютекс
Это одно и то же.
Сообщение от Falcon
я понимаю что таймеры не сброшены
Ну это самое первое на что я грешу.
Сообщение от Falcon
но проблема что они и не должны быть сброшены
Есть проблема монопольного захвата памяти, ее придется решить. А таймеры сначала все срубить (если это возможно), а потом по одному поднимать. В какой-то момент проблема всплывет.
Новый хак узнаешь
Самый верняковый метод - дебаг браузера
__________________
Если хочешь что-то сделать - сделай это…
Ответить с цитированием
  #6 (permalink)  
Старый 11.11.2010, 18:07
Интересующийся
Отправить личное сообщение для Falcon Посмотреть профиль Найти все сообщения от Falcon
 
Регистрация: 26.10.2009
Сообщений: 23

сорр, не написал выше, если таймеры убрать то все работает, так же выяснилось что если оставить 1 таймер-не работает, убрать его - работает, таймер раз в секунду. возможно поможет если сделать его реже(не пробовал еше), то поможет, но реже в проекте его не сделать.
дебаг браузера
С радостью, подскажи где взять исходники маковского сафари
Ответить с цитированием
  #7 (permalink)  
Старый 11.11.2010, 19:13
Аватар для vladlen
Кандидат Javascript-наук
Отправить личное сообщение для vladlen Посмотреть профиль Найти все сообщения от vladlen
 
Регистрация: 19.10.2010
Сообщений: 143

Сообщение от Falcon
исходники маковского сафари
Исходники движка вполне себе открытый проект, но дело-то не в них. Ты правильно сделал что опробовал все варианты систем. MacOS не *nix и не *BSD. Придется дебажить в рантайм и иметь дело с ASM Не думаю что это тебе нужно.
Ответ на твою проблему скорее всего прост: указатель на таймер присваивается чужой (уже занятой) переменной. Как результат - конфликт.
__________________
Если хочешь что-то сделать - сделай это…
Ответить с цитированием
  #8 (permalink)  
Старый 11.11.2010, 19:18
Интересующийся
Отправить личное сообщение для Falcon Посмотреть профиль Найти все сообщения от Falcon
 
Регистрация: 26.10.2009
Сообщений: 23

>>Не думаю что это тебе нужно.
как ты прав)

>>Исходники движка вполне себе открытый проект
если я не ошибаюсь то движок у них с хромом одинаков, но хром единственное что не вылетает под Маком

>>указатель на таймер присваивается чужой (уже занятой) переменной.
есть большой объект, и интервал устанавливается только раз:
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 спрошу

Последний раз редактировалось Falcon, 11.11.2010 в 19:20.
Ответить с цитированием
  #9 (permalink)  
Старый 11.11.2010, 23:14
Аватар для vladlen
Кандидат Javascript-наук
Отправить личное сообщение для vladlen Посмотреть профиль Найти все сообщения от vladlen
 
Регистрация: 19.10.2010
Сообщений: 143

Сообщение от Falcon
если я не ошибаюсь то движок у них с хромом одинаков
не ошибаешься, только реализация разная. Хром это многопроцессное приложение, а остальные только многопоточные. В итоге Хром это хорошо обстрагированные части без общей разделяемой памяти. Посему и не падает.
Поэтому и говорю: хоророшо что попробовал все системы и браузеры. Ответ попросту стал очевиден. Ты вызвал потоки, а они между собой законфликтовали.

Сообщение от Falcon
проверю как влияет время
Скорее всего никак.

Сообщение от Falcon
есть большой объект
А сколько у этого объекта потомков? Если не один, то тут собака и порылась
__________________
Если хочешь что-то сделать - сделай это…
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблемы кроссбраузерности под 64-разрядной OS Сергеев_ЕВ Javascript под браузер 15 26.01.2010 21:58
JavaScript на Яндекс.Фотки - почему тормозит браузеры? ZavFirefox Javascript под браузер 23 27.09.2009 19:24
Люди, помогите адаптировать скрипт под Оперу KiLLk Opera, Safari и др. 1 01.06.2009 01:05
Как писать скрипты под Opera? ucsus (X)HTML/CSS 2 15.04.2009 13:07
Выезжание таблицы из под ниоткуда. lancer Элементы интерфейса 3 29.06.2008 15:03