За последние 24 часа нас посетили 17508 программистов и 1714 роботов. Сейчас ищут 1512 программистов ...

Весь интернет-магазин на AJAX

Тема в разделе "JavaScript и AJAX", создана пользователем Nikdssl, 16 фев 2017.

Метки:
  1. Nikdssl

    Nikdssl Новичок

    С нами с:
    16 фев 2017
    Сообщения:
    6
    Симпатии:
    0
    Здравствуйте.

    Подскажите, как глубоко можно использовать AJAX?
    Если на сайте есть несколько каталогов, можно ли сделать все переходы по ним, включая заходы в карточки товаров на AJAX? А как в таком случае будут работать фильтры по цене, размерам и т.д.?

    Реально ли таким образом улучшить интернет магазин?
     
  2. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    759
    А если посетитель захочет другу ссылку на товар отправить?
     
  3. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    Это можно реализовать, но костыльно.

    А что улучшится? AJAX ради AJAX-а что-то сделает лучше? Сайт превратится, скорее всего в одностраничный. Толку? Что стало лучше? Удобство для пользователя? Нет. Индексация? Вообще уйдет в минус.

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

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    759
    Вот написал сообщение и не отправлял.. сидел и думал...

    Пришел к тому, что ссылку сформировать можно, но она же не будет отображаться в адресной строке, разве не так?

    Если так, то придется делать отдельную кнопочку "получить ссылку". А пользователи не любят непривычные вещи.
     
  5. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    Да, как-то так оно и есть. Но есть и частные случаи. У меня вот в проекте сейчас в личном кабинете подгрузка контента при выборе пунктов в меню происходит аяксом. Но, при этом есть возможность открывать эти пункты в новых страницах. Каждый пункт - ссылка. При клике он проверяет, не средней ли кнопкой его тыкнули. Если средней, от отрабатывает как ссылка, все по честному. Открывается новая вкладка. Если левой кнопкой - посылвает запрос аяксом. При этом используются гет-параметры, которые прописываются в ссылку каждого пункта, чтобы он корректно прогрузился, будучи открытым в новой вкладке. Но для автора это не имеет никакой практической пользы.
     
  6. Nikdssl

    Nikdssl Новичок

    С нами с:
    16 фев 2017
    Сообщения:
    6
    Симпатии:
    0
    Спасибо за активные ответы!

    Ajax очень быстро подгружает контент, и мне показалось, что это хорошее решение для удобства пользователей в магазине.
    Минусы конечно жуткие, помимо перечисленных нашел проблему с кнопкой "назад" в браузере.

    Но в целом, как вы считаете, насколько это трудная (или вообще выполнимая) задача, сделать интернет магазин на ajax? У меня 40 000 страниц.

    Если эксперимент состоится, и кому-то интересно, буду выкладывать здесь результаты и статистику.
     
  7. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    А какая разница, сколько их? Да хоть миллион. Они статичные чтоли? :)
    --- Добавлено ---
    В целом, задача не трудная, если не учитывать тонкости реализации вашего магазина, на абстрактном уровне, так сказать. Но я бы не советовал все же.
    --- Добавлено ---
    Для ускорения загрузки страниц лучше почитайте про управление браузерным кэшем и специфичные заголовки. Эффект будет по скорости тот же, что и от аякса, но без геморроя сопутствующего.
     
  8. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    Кнопка "Назад"? История? URL?

    History API?
     
  9. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    759
  10. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    Но...при чем тут сокеты? Ему интернет-магазин, а не приложение с активным сервером.
     
  11. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    759
    Хочет человек технологичный современный интернет магазин. Можно и ознакомиться.
    Или есть промежуточные варианты?
    --- Добавлено ---
    На чем ВК работает?
    Там и страница не перезагружается и ссылки в адресной строке разные...
     
  12. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    @TeslaFeo ты в одну кучу всё не мешай. Когда ты навигируешь по вк у тебя браузер либо готовую страницу открывает либо дергает срез данных с сервера. Считай аяксом. Хотя там json-ом кодировано все. И примерно это нужно ТСу.
     
  13. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    759
    @Ganzal Если включить музыку в вк, то можно отследить перезагрузку страницы.
    Если страница перезагрузится, то музыка замолчит.
    При переходе по страницам ссылки в адресной строке меняются, но страница не перезагружается.
    Можно даже нажать "Назад" в браузере и музыка не замолкает.
    Такое можно реализовать на ajax или json?

    Это еще не затрагивая уведомления о новых сообщениях, переписке в чате в реальном времени, обновление новостей и т д
    --- Добавлено ---
    Этот вопрос давно волнует... Вот и повод появился его задать :)
     
  14. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    каша из понятий. в браузере есть апи позволяющий менять и контролировать историю. соотв, можно сделать переход по истории вперёд и назад со сменой урла или без со сменой контента или без. Для этого даже запрос на сервер делать не обязательно, поэтому можно смело утверждать, что ни json, ни ajax не связаны с history api
     
    TeslaFeo нравится это.
  15. Chushkin

    Chushkin Активный пользователь

    С нами с:
    17 дек 2010
    Сообщения:
    1.062
    Симпатии:
    91
    Адрес:
    Мещёра, Центр, Болото N3
    Бред.
     
  16. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    759
    @igordata т е клиент вк др#$ит сервер запросами типа "есть че?" ??? разве это не костыльный подход???
     
  17. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    1) Веб-сокеты это не "современная замена AJAX", это веб-сокеты, у них другое назначение.
    2) Опиши, где веб-сокеты могут в магазине пригодиться?
    Сначала разберись в вопросе, потом спорь. ВК это ВК. Это не интернет-магазин. У ВК, если хочешь, половина бэкенда написана на nodeJS и, емнип, плюсах. Первое, что было переведено на ноду, как раз модуль переписки. И он работает на сокетах да. Музыка, емнип, использует обычные стримы. Модули оповещений на сокетах. А вот догрузка ленты при скролле на AJAX. Еще раз повторюсь, сокеты и аяксы - это не взаимозаменяемые технологии. А Вконтакте - крайне хреновый пример, когда речь идет о применимости аякса для интернет-магазина.

    Сейчас диалог как-то так строится:
    -Надо на машину скорой помощи ставить брандспойт и чтоб цистерна воды в нее вмещалась!
    -Это же скорая, нахрена ей это? Им другое оборудование нужно.
    -Я видел, как их пожарные машины используют! Отлично работает! Если хочешь современную скорую помощь, надо и на нее поставить!
    --- Добавлено ---
    Аргументируй, пожалуйста. Чем-то кроме "а если у клиента JS не работает?". Потому что у 99.999999999999999999999999999999999999% клиентов он работает.
     
    TeslaFeo нравится это.
  18. Chushkin

    Chushkin Активный пользователь

    С нами с:
    17 дек 2010
    Сообщения:
    1.062
    Симпатии:
    91
    Адрес:
    Мещёра, Центр, Болото N3
    Я не знал, что нашим итернетом пользуются все жители вселенной :)
     
  19. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    там может быть websockets которые специально сделаны для постоянного подключения и быстрой работы
     
    TeslaFeo нравится это.
  20. Chushkin

    Chushkin Активный пользователь

    С нами с:
    17 дек 2010
    Сообщения:
    1.062
    Симпатии:
    91
    Адрес:
    Мещёра, Центр, Болото N3
    Потому что, по правильному на JS надо делать только то, что нельзя сделать на сервере или очень трудно.
     
  21. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    При чем тут вселенная? Там знак процентов на конце.
    На дворе 2017 год. JS уже давно перестал быть костылем. А сайты давно перестали быть просто страничками статичными. Теперь сайты - это тонкие клиенты, полноценные приложения.

    Ты назвал бредом, к примеру, реализацию через AJAX обновления контента при применении фильтров в магазине. Потому что можно же просто перезагрузить страничку.
    То есть, ты назвал бредом:
    1) рациональное использование ресурсов сервера;
    2) снижение нагрузки на линию клиента (а в отдаленных регионах даже сраный гугл грузитья может тяжело);
    3) улучшение пользовательского опыта, потому что пользование сайтом без этого вот дерганья-моргания банально приятно;
    4) банальную экономию трафика (да да, в тех же отдаленных регионах он не безлимитный, а на телефонах безлимит вообще отдельная тема);
    5) ускорение времени доставки контента клиенту и, в целом, лучшую конверсию трафика в профит;

    Действительно, бред. Кому оно только нужно?

    В то время как отказаться от этого, ради того, чтобы избежать использование JS потому что...ну потому что вот потому непонятно почему, потому что 20 с гаком лет назад он использовался только для всяких свистелок и перделок, которые не несли полезной нагрузки, но жрали ресурсы железа, из-за чего JS отключали - это рационально и не бред. Progressive enhancement? Нет, не слышал.
     
  22. Chushkin

    Chushkin Активный пользователь

    С нами с:
    17 дек 2010
    Сообщения:
    1.062
    Симпатии:
    91
    Адрес:
    Мещёра, Центр, Болото N3
    И я об этом. Точность 10^37 применима только ко всем жителям вселенной. ;)
    --- Добавлено ---
    Пофиг, хоть 3017. Разумность применение JS определяется идеологией клиент-сервер.

    В первую очередь я назвал бредом то, что выделил (подчеркнул). Остальное - следствие.

    Экономия на спичках.

    Мне пофиг гугл, я его не делал.

    У меня ничего не дёргается. А если у них дёргается, нууу рецепт один - сменить кривой навигатор.

    Экономия на спичках.

    Экономия на спичках.

    Вероятно тем, кто не может писать нормальный серверный код.
    Мне не нужно. А тебе?
     
  23. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    А аргументы кроме как "у меня в городе хороший интернет и у меня все работает, и, значит, у всех так", будут? Я тебя огорчу, но хороший интернет в России и в Мире далеко не везде. А мобильный хороший интернет вообще только в крупнейших городах.

    То, что для тебя "экономия на спичках", в реальном мире экономия денег и времени клиента.
    --- Добавлено ---
    P.S. Ты ведь в курсе, что AJAX это не "сделано на JS то, что можно сделать на сервере", а фоновая загрузка контента, который формируется...на сервере?
     
  24. Chushkin

    Chushkin Активный пользователь

    С нами с:
    17 дек 2010
    Сообщения:
    1.062
    Симпатии:
    91
    Адрес:
    Мещёра, Центр, Болото N3
    > То, что для тебя "экономия на спичках", в реальном мире экономия денег и времени клиента.

    Посчитай. А потом расскажи нам, сколько экономится.
    Для подсчёта возьми нормальные разработки, - плохие в зачёт не идут.

    п.с. Мы ведь говорим, как "надо делать"(как правильно), а не как сделано кем-то где-то?
     
    #24 Chushkin, 19 фев 2017
    Последнее редактирование: 19 фев 2017
  25. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    Просто раньше писать серверный код было проще, потому как на фронте был кривой джаваскрипт да jquery. Сейчас же, во времена вебпака, реакта и прочих сокетов реализовать логику отображения на фронте на порядок быстрее, при чем сразу с свистелками и динамикой. Я даже хз о чем тут спорить можно )