Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

kikasso

Пользователи
  
  • Публикаций

    163
  • Зарегистрирован

  • Посещение

Все публикации пользователя kikasso

  1. Постановка задачи: оптимизировать клиентскую часть, для сайта с несколькими сотнями товаров, с использованием мультиязычности и SEO (генерация страницы не более 0,2с). В качестве пациента для экспериментов был взят OpenCart 1.5.5.1 с дефолтной базой. Для поиска узких мест начнём с профилирования, анализируем результаты загрузки главной страницы (в листинге и карточке товара получаются аналогичные результаты): Как и ожидалось, почти половину времени тратиться на запросы к БД, вот и займемся этой частью, не будем экономить на спичках. Простеньким скриптом собираем массив с данными выполнения запросов для анализа (ключами являются методы функций из которых делался запрос к БД, значениями кол-во таких запросов). Видим, что точек вызова не так уж много - 15, но это не одинаковые запросы, для большинства повторений SQL код разный. Править php код и SQL запросы, заниматься денормализацией БД не интересно, хочется более кастомного и простого решения с использованием кэша. Основная проблема при его использовании - инвалидация, так: по времени - сайт будет тормозить в момент обновления кэша по событию - много правок в коде надо делать, не подходит... зависимости? - легче движок переписать :) Попробуем схитрить, записи в хэш таблице обновлять порциями не более N штук, по факту просмотра страницы, тем самым рассредоточив нагрузку. Время жизни тоже можно сделать разным, для разных типов данных (классифицируем по имени метода функции). Хочется еще сократить кол-во запросов при обращение к кэшу, тэгирование излишне для нашей задачи, будем просто объединять в группы. Например: настройки, курсы валют, единицы измерения - то что от страницы к странице одинаково грузить пачкой, товары будут браться из кэша отдельно. Приступаем к реализации идеи, кэш будем хранить в БД, для возможности реализации "хитростей", файлы не подойдут. Хэш таблица не станет узким местом, запросы по уникальному ключу будут быстрые, главное их кол-во сократить к минимуму. Дальше кодим и получаем вот такой результат (время/количество запросов): Может еще можно что то глобально ускорить? повторный профайл: запросы к БД уступили лавру первенства, теперь нет особо нагруженных частей... закончили. Результат устраивает, довольно потираем руки :). Выводы: Данное решение позволяет в 4-7 раз увеличить производительность сайта! Можно ещё экспериментировать с настройкой групп, времени жизни и размером порций обновления кэша (N). Файлы выкладываю на gist. Приветствуется конструктивная критика, пожелания и замечания. Полезные ссылки по теме: - клиентская оптимизация OpenCart - Отладчик для OpenCart - профилирование PHP кода - Кеширование на клиенте и на сервере (ШРИ в Москве 2012) Желаю всем быстрых сайтов!
  2. суть заключается в обходе ограничения кол-ва, одновременных загрузок браузером с одного хоста (браузеры именно на них ориентируются а не на IP). Результат хорошо виден на скринах. Такой подход используют многие популярные интернет магазины http://www.ozon.ru/ http://rozetka.com.ua/
  3. В моём варианте предложен вариант использования Apache + Nginx. Ngnix ,берёт на себя всю статику и её кэширование, статика до апачи не доходит, так что речи о кеше в htaccess не может быть. Напишите свой результат оптимизации, тогда будет предметный разговор, а так воздух сотрясаете! Клевета, озлобленность это удел слабых людей и трусов!
  4. Поиск, есть на главной и страницах карточки товаров, в листинге его место занимают "хлебные крошки", так было задумано вначале. В аналитике отслеживается использование внутреннего поиска по сайту и если отобрать этих пользователей то их коэффициент конверсий составляет 2% без одной сотой - это более чем в два раза больше среднего значения по сайту, что говорит о рентабельности инвестирования средств в улучшение поиска. Спасибо за наводку! Фильтры, тоже присутствую для категорий в которых определены атрибуты http://avtopride.zp.ua/amortizator Пишите не по теме! Вам ребята учиться надо, а не огрызаться и офтопить!
  5. Я читал правила форума перед размещением реферальной ссылки, она не является рекламой и в правилах не запрещена, как и не запрещено писать как кто то умеет делать сайты:) О моей компетенции, говорит моё портфолио!
  6. Если напишите что нибудь стоящее в топик, удалю :)
  7. Объективно оценить результаты проделанной работы вы сможете в отчете Google Analytics "Скорость загрузки сайта" с разбивкой по браузерам, странам и страницам
  8. Разница между посещением корзины и подтвержденным заказом очень большая! Коэф. конверсий это основная метрика в электронной торговле, которой уделяют больше всего внимания. Любое вложение денег и времени в сайт должно быть измерено. "отмена и аннулирование" не учитываются в конверсии продаж, это уже недостатки общения, товара или дезинформации... 0 руб. это хорошо, но непонятен результат )
  9. Тормозит сайт? начать стоит с проверки производительности серверной части, для этого в файл index.php добавим две строчки одну в начало файла: $sysstart = microtime(true); и одну в конец echo '<!--time_gen- '.round(( microtime(true) - $sysstart), 5). 's -/time_gen-->'; В результате просматривая HTML код любой страницы сайта вы будете видеть время выполнения скрипта: Хорошо если полученное время измеряется в сотых, если в десятых тоже пойдёт, но не более 0.3, если больше начать оптимизацию надо с серверной части. Вся суть клиентской оптимизации сводится к уменьшению объема загружаемых данных и количества запросов, делаемых к серверу. И так руководство к действию и результаты измерений (кол-во запросов/ объем загружаемых данных/ время загрузки страницы): 0. Начальный замер производительности на Apache без Gzip (34/496,6/1.4) 1. Использование Apache + Nginx для отдачи статики 2. Использование Gzip сжатия (34/216,2/1.18) 3. jQuery и jQuery UI грузим с CDN , например, Google или с официального сайта jQuery (25/164,3/1.05) 4. Изображения используемые в шаблоне, объединяем в спрайт (23/ 164,3 /0.92) 5. Объединение и минимизация JS скриптов и CSS 6. Загрузку изображений можно разбить на различные субдомены (тем самым обходим ограничение одновременных загрузок для одного хоста у браузеров) (18/129,2/0.8) Обратите внимание на временную линию загрузки изображений, теперь в диаграмме отсутствует серый цвет, который означает блокирование (ожидание) выполнения запроса, из-за ограничения числа одновременных подключений в браузере. 7. Перемещение JS файлов в конец страницы (перед закрывающим ), не забываем что необходимо будет весь JS код в тексте страницы вынести в отдельный файл и грузить после jQuery, иначе работать не будет. Это ускоряет отображение страницы, т.к. рендеринг страницы блокируется на время загрузки и выполнения скрипта. Если всё правильно сделаете в диаграмме должна исчезнуть ступенька, которая наблюдается на скринах выше после .js файлов Эксперимент проводился над OpenCart 1.5.5.1 используемые инструменты Firefox + FireBug, на локальной машине Denwer, хостинг - ukraine.com.ua [← осторожно реферальная обычная ссылка]). Для базовой клиентской оптимизации достаточно правильно выбрать хостера или настроит сервер + без особых трудозатрат можно выполнить пункт 3. Можно безболезненно отключить jQuery UI, если не используются специальные поля в атрибутах товаров. Правки в п. 4, 5, 7 будут зависеть от используемого шаблона и дополнений. Подробнее остановлюсь на реализации п.6: - нужно внести изменения в файл \catalog\model\tool\image.php (прикрепляю к топику), смысл заключается в изменении хоста загрузки изображений, добавляется поддомен с индексом (i, i1, i2, i3, ....), индекс увеличивается после вывода 6 изображений - на сервере настроить переадресацию с несуществующих доменов на основной (на хостинге ukraine [← осторожно реферальная обычная ссылка] это делается установкой одной галочки) Выводы: Для тех у кого состояние сайт соответствует п.0 есть потенциал для двойного увеличения производительности клиентской части, если сервер настроен согласно п.2 можно говорить об 1/3. И надо понимать что клиентской оптимизацией стоит заниматься, когда уже бизнес настроен, есть конкуренция и желание выделиться. На начальном этапе это будут неоправданные трудозтраты. P.S. кто проделает работу по оптимизации, делитесь результатами image.zip
  10. а загрузка изображений тоже через Exel организована?
  11. Покупателей или покупок? Посетителей или уникальных посещений? Сравнивать можно, но без других метрик, понимания кто круче не будет. Включаем для сайта тизерную рекламу и коэффициент конверсии продаж тает - по факту ничего с продажами не изменилось или наоборот, есть практики корреляции трафика с поисковых систем, когда кол-во переходов уменьшается, а коэффициент слегка возрастает, при этом продажи слега падают. А вы говорите тема не холиварная :)
  12. Есть у кого то опыт использования решения с Amazon S3?
  13. Ссылки не кто не отменял, бесспорно они эффективны для продвижения, особенно если доноров выбирать вручную со знанием дела! Я знаю примеры сайтов без большой ссылочной массы (естественной), выдающихся в топе и конкурентов, изрядно потратившихся на ссылки, которые глотают пыль позади. Я считаю инвестиции в постоянное улучшение сайта, юзабилити и контент более важными, а маркетинг вообще на первое место ставлю... но это уже совсем не по теме. Цену привлеченного клиента тяжело расчитать при поисковом продивижении, затраты не линейны и результат инерционен по времени. А вот для контекстной рекламы это будет основной показатель, сравнивая который с конверсией и суммой среднего чека, можно будет судить об эффективности компании!
  14. Встроенный загрузчик фоток не удобен, много кликов приходится делать)) Хотелось бы узнать у опытных пользователей, кто и какие решения использует для данной задачи? как фото раскладываете, как загружаете? Можно в тему писать и конкретные пожелания по реализации, проблемы с которыми сталкиваетесь при работе с фото. Идея топика найти юзабильное решение или хотя бы составить список пунктов :), я ничего подходящего не нашел, если пропустил бросьте ссылку.
  15. Вообще тема "коэффициент конверсий в электронной коммерции" - холиварная, многое зависит от того как считать и что считать. Это субьективный показатель!
  16. спасибо, подобного рода, я встречал информацию, меня как и любой другой пытливый ум интересует откуда цифры, на основании каких данных, как рассчитывается..., многие понимают сложность получения данной информации. Такую статистику надо сильно "фильтровать" :) одно авторитетное утверждение для себя встретил на его блоге
  17. Для сравнения делюсь, аналогичными данными за тот же период с информацией по успешным заказам. Настройка "параметров интернет магазина" в аналитике, даст возможность рассматривать величину конверсий сегментируя пользователей по источнику трафика, по локациям, поисковым фразам и многое другое... Думаю многие знакомы с вебизатором в Яндекс Метрике, так вот, отфильтровав посетителей по параметру "Достигшие целей Подтверждение заказа", вы сможите смотреть "кино" о том через что прошел пользователь на вашем сайде перед тем как сделать покупку :)
  18. Вы ссылку забыли указать на ресурс к которому относятся эти картинки. А почему вы не отслеживаете подтверждение заказа? на скрине показана только посещаемость корзины... Если у вас на сайте по клику на кнопку купить идёт переход в корзину, тогда процент конверсий о которых можно судить - ничтожен.
  19. @rb2 если можно, пожалуйста, поделись ссылкой на данные по среднему значению коэффициента конверсий в эл. торговле, а то я не встречал такой статистики
  20. Согласен с важность коэффициента конверсий в электронной торговле, но его обязательно надо рассматривать в контексте общей картины: сегмента рынка, размера среднего чека покупателя, количества заказов по телефону, которые, к сожалению, никак не фиксируются в аналитике и пр. Если у кого то этот показатель больше или меньше - это однозначно не значит что он успешнее или нет. Коэф. конверсий показатель довольно индивидуальный, но для владельца в любом случае его рост, это рост толщины кошелька!
  21. однозначно адаптивная верстка, или отдельная мобильная версия если полная имеет сложную структуру с навороченными фильтрами и посадочными страницами...
  22. Делиться личным опытом или кодом считаю полезным и то что это верный способ найти клиентов, тоже знаю. Вы считаете что все написанное в топике элементарные вещи и все так делают? Ваш тролинг говорит об обратном, "ничего стоящего" так не цепляет:)
  23. авантюрная у вас идея:) это немножко не честно по отношению к пользователю, сначала брать деньги - а потом спрашивать адрес, думаю тут без подводных камней не обойдётся. А на счет приложений под Андроид в маркете я встречал и витрины для магазинов и помощники для администраторов, правда пока ничего не тестил...
  24. Согласен, просто сейчас код пишется на коленке под нужды, думаю еще добавить профилирование Ajax запросов через FireBug и информацию по использованию кэша. Спасибо за помощь в отладке!
  25. петушитесь как раз вы господа, лучше бы вместо того чтоб камни кидать в мой топик написали что нибудь стоящее, может у вас есть история успешного продвижения? было бы интересно почитать и увидеть результат!
×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.