Исследования

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

мы ведем исследования небольшими группами по 200-300 человек (с) Сергей Брин

Проведение исследований может сильно сократить время разработки, и это касается не только больших компаний. Некоторое время назад я делал исследование для AdPepper. Задача была примерно такая: третья сторона размещает на AdPepper свой рекламный код содержащий все что угодно от картинки до js или flash, нужно уметь обрабатывать событие о завершении загрузки в том числе и в ie6. Варианты просто картинки и flash рассматривать не будем, это не так интересно в вот js код намного интереснее.

Вариант первый и самый простой — iframe+onload, можно начинать дергаться в конвульсиях от сочетания ie6+iframe тем не менее это было не самым страшным. вариант не взлетел потому что если я начну создавать в js тег с картинкой или прелоадить картинку и уж тем более делать это все через ajax то onload произойдет слишком рано.

Вариант второй script-injection, после пользовательского кода добавляем


<script type="text/javascript">
window.top.adpepper.onload();
</script>

имеет примерно теже недостатки что и просто onload

Вариант третий самый сложный с технической стороны — переписать клиентский код. В самом простом варианте было дописывание вызова adpepper.onload в конец клиентского кода, в более сложном учет всех ajax запросов и ожидание ответа клиентского сервера или разрыва соединения, оба варианта отвалились на прелоаде картинок


var img = new Image();
img.src = "path/to/image.jpg";

переписать Image для iframe не додумались

И последний вариант самый простой для нас и самый сложный для клиента — вызов adpepper.onload клиентом из своего кода, на нем и остановились :)

В общей сложности исследования заняли неделю, и дали клиенту понимание того почему подход в лоб не сработает и почему не нужно поддерживать ie6, а главное все остались довольны.