Как стать автором
Обновить

Комментарии 13

>>тогда нужно подождать и повторить попытку чуть позже по таймеру. Но, обычно, до загрузки страницы эти данные уже приходят.
Ужас.

>>Общее у этих подходов то, что баннеры загружаются по мере загрузки страницы и, если что-то будет тормозить, затормозит вся страница.
Вы владелец баннера или баннеры вставляют к вам и вы просто советуете?
Так-то владельцу баннера важно чтобы он как можно быстрее появился. А тормозить не должно, если бекенд нормально сделан.
Поэтому и запрос еще один через JSONP делать очень нежелательно.
По ожиданию с таймером действительно ужас, но, когда данные нужно запросить на стороне, то нужно ждать. Можно сделать, чтобы run вызывался из setid, при получении данных, но тогда это не по задаче, где надо при onload. К бэкэнду, если упростить фронтэнд, то только дополнительный плюс. По jsonp здесь как пример уже больше, для себя его получится убрать. Спасибо за комментарий!
Так а зачем запрашивать еще какие-то данные на стороне? У вас есть настройки которые вы уже вставили на страницу и есть один запрос к вашему яваскрипту — вот там уже все данные должны придти, хотя даже при очень хитрых банеров можно обойтись без динамического яваскрипта. Если речь идет об изображениях, которые должны загрузится и уже зачем-то только после этого отрисоваться, то у них тоже есть событие загрузки.
Вообще какой-либо запрос еще один вам мог быть бы нужен только в одном случае, если вы загружаете динамический яваскрипт в первый раз, который получает какие-то данные со страницы, ну например парсит текст и потом бекенд решает какой ему баннер отрисовать.
Или например я на домене doubleclick.net, но хочу при показе баннера учитывать поведение посетителей, которое хранится в истории на домене analytics.google.com, образно говоря. Мне нужно передать куки между доменами, чтобы я мог сделать потом запрос за этой историей по id пользователя который известен только analytics.google.com. В моем случае, все дело в куках :) Баннеры работают на разных доменах (обработка клика тоже на разных доменах), но id пользователя единый для всей рекламной сети. Вот при обработке клика, например, нужно знать какой это пользователь был. Для этого с неглавного домена нужно послать запрос на главный, получить id. Там у меня по коду и видно, что счетчик на .by, а баннеры с .net грузятся. Но даже если это поправить, обработчик клика все равно с любого другого домена может быть в нашем случае по условиям задачи которая у нас решалась (вне этой статьи).
И вот вам автоматический Javascript beautifier прямо в браузер (хром), который будет делать js красивым на лету.
И вот вам — спасибо!
А встроенная в консоль, вам чем не нравится Pretty print {} в нижнем левом углу?
Встроенная в консоль тоже ок, но нужно открывать консоль
Здесь же всё готово уже прямо в окне
Делал похожее — возникает следующая проблема: когда все баннеры асинхронно загружаются, а это происходит практически одновременно (то есть они разом появляются) то страница виснет на секунду. Это не есть хорошо. Что можете порекомендовать?
Самый простой способ я бы попробовал поставить минимальную задержку перед отрисовкой, например грузить баннеры через каждые 100мс. Но смотря из-за чего виснет — если это сервер не может обработать сразу столько запросов, тогда пауза чуть поможет. Можно сделать именно загрузку баннеров последовательной. В buysellads думаю все ок из-за того, что баннеры грузятся при готовности dom-а, не дожидаясь всей загрузки страницы, поэтому все работает как обычное подключение скриптов и картнинок. Но это не советы, а только мысли вслух, пока я с такой проблемой не столкнулся и примера нету — не смогу подсказать точно. Если будет, сообщу о решении :)
Нет, проблема не в сервере. Сервер отдает сразу все нормально. Дело в браузере — он при отрисовке флеш баннеров зависал.
Скорее всего проблема в самих банерах, обычно об их оптимизации никто не задумывается и засовывают внутрь флеша кучу всяких сложных эффектов, то что они начинают выполнятся почти одновременно, усугубляет проблему.
Но по-моему это само по себе очень нехорошое занятие — повесить на одну страницу кучу флеш-банеров и секундная задержка тут уже роли для пользователя не сыграет :)
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации