Купил новый ноут, зашол на свой сайт и... нет карты
после ф5 карта появилась
Поставил оперу 10.10 - зашол на свой сайт.. нет карты, нажал ф5 - есть карта..
Сношу данные оперы - карта то есть то нет
В ФФ\ИЕ карта есть почти всегда
у всех пользователей у кого нет карты - нет и сессии, юзер агент - обычно фаерфокс..
Задумался, поставил на сайт логирование стейтов загрузки карты - через 10 секунд проверяем карту, если она признана не активной - сваливаем на сервер дамп переменых..
Получается не очень красиво - за 10 минут более 30 человек не смогли загрузить карту.
в 95% случаях - яндекс карту
тоесть у 5-10% посетителей нет карты.
анализ логов выдал несколько мест сбоя, часть из их из-за тормознутых компов и каналов, но один место четко - самое популярное
function SetYandexMaps()
{
StartMap_3on=3;
YMaps.load(worker.SetYandexMaps);
}
вызов SetYandexMaps уже не производиться
честно говоря не знаю как это отдебагить даже
кто поможет?
А FF 3.5.6, 3.0 - страдают?
В head надо найти script с src="http://api-maps.yandex.ru/1.1.6/_YMaps.js?v=1". Если он есть, то запрос ушел. Кроме того, проверьте наличие, например, YMaps.Map - возможно, API прогрузилось, но не вызвался callback.
Не могу воспроизвести Вашу проблему ни на своем, ни на соседних компьютерах. Могу только посоветовать поставить 5 секундный интервал, который а) проверяет наличие YMaps.Map б) если найдено, вызывает SetYandexMaps в) если не найдено, снова вызывает YMaps.load.
ура! наконец получилось стабильно получить багу. вся проблема(опять) в том что сайт мой использует прототип. Ключевая функция getElementsByClassName которую прототип ПЕРЕОПРЕДЕЛЯЕТ в тоже время при YMaps.Load эта функция используется.
при этом в ее теле есть место var nodes = $(element).getElementsByTagName('*');
где $ есть яндексовый квери. стабильно получилось в ИЕ8, в ФФ не стабильно, в чистой опере стабильно при первом посещении сайта.
В моем случае я просто стер данную функцию из прототипа. Как вариант для дальнейшего копания - нельзя ли в пределах карт яндекса повесить jquery на другой символ?