Все записи автора savr

Кроссбраузерная альтернатива console.log, или Как я перестал волноваться и полюбил клиентскую отладку

Отладка — неизбежный и один из самых длительных этапов любого вида разработки. Клиентская веб-разработка в этом смысле не исключение. Более того, здесь этот вопрос стоит особенно остро, так что зачастую становится источником головной боли. Если при серверной отладке область действий программиста ограничена инструментом разработки, то на стороне клиента задачу отладки осложняют многочисленные внешние факторы — браузеры, с многообразием и различиями которых приходится считаться любому веб-разработчику.

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

Даже такая, казалось бы, простая вещь, как console.log, не может стать решением проблем. Как известно, этот метод не является частью стандарта DOM, так что даже его наличие в браузере конечного пользователя отнюдь не гарантировано (как всегда, в первую очередь это касается мобильных устройств), не говоря уже об особенностях реализации.

Все это наводит на мысль о необходимости появления универсального средства отладки. Таким средством может стать опенсорсное решение JS LogFlush, о котором пойдет речь в этой статье.

Читать далее

Многопоточный сбор данных с использованием цепочек связанных cURL-запросов. Часть 2

Первую часть статьи читайте здесь.

До сих пор мы еще никак не касались вопросов обработки cookies и использования прокси в условиях многопоточности запросов. Пора исправить эту оплошность и уделить внимание этим вопросам, имеющим большое практическое значение при разработке парсеров.
Читать далее

Многопоточный сбор данных с использованием цепочек связанных cURL-запросов. Часть 1

Библиотека cURL — лучший друг разработчика парсеров, ботов и прочих средств онлайн-автоматизации. Она позволяет сделать многие сложные вещи простым и универсальным способом (достаточно лишь правильно настроить опции cURL). Но все оборачивается по-другому, когда дело доходит до многопоточности, то бишь параллельности выполнения запросов. Эта довольно «скользкая» тема почему-то у многих вызывает большие сложности с пониманием. Во всяком случае именно так было со мной, когда я впервые столкнулся с необходимостью распараллеливания запросов. Мое первое знакомство с multi-curl было весьма непродолжительным, сколь и печальным. Короче говоря, официальный мануал по мультикурлу в PHP я попросту не осилил.

…Но мир не без добрых людей. Оказалось, что существует множество оберток мультикурла, позволяющих пользоваться всеми его преимуществами, не вникая при этом в суть его магии. Одна из самых популярных таких оберток — PHP-класс Rolling Curl. Имея под капотом наиболее эффективную реализацию мультикурла, Rolling Curl предоставляет простой и удобный интерфейс для параллельного выполнения множественных HTTP запросов. С помощью этого класса я смог сразу же и без особых проблем применить многопоточность на практике, чему был несказанно рад. С тех пор я стал большим его поклонником… Собственно на этом можно было бы и закончить эту статью, а то и вовсе и не начинать, если бы… опять не одно «но».
Читать далее

Импорт в Prestashop: подводные камни

Как-то мне довелось писать парсер для магазина на PrestaShop. Хочу теперь поделиться своим мимолетным опытом знакомства с этой платформой. К сожалению, не очень приятным. Нет, я ничего против нее не имею. Вполне себе симпатичное e-commerce решение, удобное для пользователей. Можно сказать, приятное в любом отношении. Кроме отношения к разработчикам.
Читать далее

Вывод и фильтрация больших таблиц данных с помощью плагина DataTables + ColumnFilter. Часть 2

В первой части статьи рассказывалось об использовании плагина DataTables для вывода больших таблиц данных в режиме обработки данных на стороне сервера и применении дополнения Column Filter для индивидуальной фильтрации по столбцам

В этой части речь пойдет о более продвинутом использовании дополнения Column Filter, включающем:

  1. создание фильтров в виде списков с множественным выбором (т.е. с возможностью выбора нескольких значений);
  2. построение цепочек зависимых списков фильтрации.

Читать далее

Вывод и фильтрация больших таблиц данных с помощью плагина DataTables + ColumnFilter. Часть 1

Веб-разработчики довольно часто сталкиваются с задачей отображения на странице данных в табличной форме с возможностью их сортировки, поиска/фильтрации, разбиения на страницы и удобной навигации по ним. Например, для меня это стало актуально при создании админки для одного сайта. Каждый разработчик решает эту задачу по-своему. Многие не сильно с этим заморачиваются и в результате получаются интерфейсы в стиле ранних версий phpMyAdmin, с полным обновлением страницы после любого клика мышью. Но сейчас уже не начало 2000-х, а значит, пора уже и админки переводить на AJAX и jQuery. Мне в этом очень помог замечательный плагин DataTables, который избавил меня от необходимости изобретать велосипед и писать тонны кода. С его помощью я смог в сжатые сроки придать админке современный вид. Теперь я хочу поделиться некоторым опытом, накопленным за время использования этого плагина.
Читать далее

Интеграция JavaScript cookies в CURL-запросы

В этой статье я расскажу об одной необычной проблеме, с которой мне однажды пришлось столкнуться в процессе написания бота для одного сайта с авторизацией. Внимание: эта статья не для начинающих. Предполагается, что читатель уже имеет опыт веб-программирования и знаком с PHP, библиотекой CURL и основами HTTP.
Читать далее