Здравствуйте. Подскажите, как глубоко можно использовать AJAX? Если на сайте есть несколько каталогов, можно ли сделать все переходы по ним, включая заходы в карточки товаров на AJAX? А как в таком случае будут работать фильтры по цене, размерам и т.д.? Реально ли таким образом улучшить интернет магазин?
Это можно реализовать, но костыльно. А что улучшится? AJAX ради AJAX-а что-то сделает лучше? Сайт превратится, скорее всего в одностраничный. Толку? Что стало лучше? Удобство для пользователя? Нет. Индексация? Вообще уйдет в минус. Аяксом нужно работать внутри страницы, а не переключать их. Всплывающая инфа, фильтры по характеристикам, подгрузка комментариев и обзоров на товар - это вот все можно и нужно делать аяксом. Переключение же страниц для интернет магазина так делать не нужно.
Вот написал сообщение и не отправлял.. сидел и думал... Пришел к тому, что ссылку сформировать можно, но она же не будет отображаться в адресной строке, разве не так? Если так, то придется делать отдельную кнопочку "получить ссылку". А пользователи не любят непривычные вещи.
Да, как-то так оно и есть. Но есть и частные случаи. У меня вот в проекте сейчас в личном кабинете подгрузка контента при выборе пунктов в меню происходит аяксом. Но, при этом есть возможность открывать эти пункты в новых страницах. Каждый пункт - ссылка. При клике он проверяет, не средней ли кнопкой его тыкнули. Если средней, от отрабатывает как ссылка, все по честному. Открывается новая вкладка. Если левой кнопкой - посылвает запрос аяксом. При этом используются гет-параметры, которые прописываются в ссылку каждого пункта, чтобы он корректно прогрузился, будучи открытым в новой вкладке. Но для автора это не имеет никакой практической пользы.
Спасибо за активные ответы! Ajax очень быстро подгружает контент, и мне показалось, что это хорошее решение для удобства пользователей в магазине. Минусы конечно жуткие, помимо перечисленных нашел проблему с кнопкой "назад" в браузере. Но в целом, как вы считаете, насколько это трудная (или вообще выполнимая) задача, сделать интернет магазин на ajax? У меня 40 000 страниц. Если эксперимент состоится, и кому-то интересно, буду выкладывать здесь результаты и статистику.
А какая разница, сколько их? Да хоть миллион. Они статичные чтоли? --- Добавлено --- В целом, задача не трудная, если не учитывать тонкости реализации вашего магазина, на абстрактном уровне, так сказать. Но я бы не советовал все же. --- Добавлено --- Для ускорения загрузки страниц лучше почитайте про управление браузерным кэшем и специфичные заголовки. Эффект будет по скорости тот же, что и от аякса, но без геморроя сопутствующего.
Хочет человек технологичный современный интернет магазин. Можно и ознакомиться. Или есть промежуточные варианты? --- Добавлено --- На чем ВК работает? Там и страница не перезагружается и ссылки в адресной строке разные...
@TeslaFeo ты в одну кучу всё не мешай. Когда ты навигируешь по вк у тебя браузер либо готовую страницу открывает либо дергает срез данных с сервера. Считай аяксом. Хотя там json-ом кодировано все. И примерно это нужно ТСу.
@Ganzal Если включить музыку в вк, то можно отследить перезагрузку страницы. Если страница перезагрузится, то музыка замолчит. При переходе по страницам ссылки в адресной строке меняются, но страница не перезагружается. Можно даже нажать "Назад" в браузере и музыка не замолкает. Такое можно реализовать на ajax или json? Это еще не затрагивая уведомления о новых сообщениях, переписке в чате в реальном времени, обновление новостей и т д --- Добавлено --- Этот вопрос давно волнует... Вот и повод появился его задать
каша из понятий. в браузере есть апи позволяющий менять и контролировать историю. соотв, можно сделать переход по истории вперёд и назад со сменой урла или без со сменой контента или без. Для этого даже запрос на сервер делать не обязательно, поэтому можно смело утверждать, что ни json, ни ajax не связаны с history api
@igordata т е клиент вк др#$ит сервер запросами типа "есть че?" ??? разве это не костыльный подход???
1) Веб-сокеты это не "современная замена AJAX", это веб-сокеты, у них другое назначение. 2) Опиши, где веб-сокеты могут в магазине пригодиться? Сначала разберись в вопросе, потом спорь. ВК это ВК. Это не интернет-магазин. У ВК, если хочешь, половина бэкенда написана на nodeJS и, емнип, плюсах. Первое, что было переведено на ноду, как раз модуль переписки. И он работает на сокетах да. Музыка, емнип, использует обычные стримы. Модули оповещений на сокетах. А вот догрузка ленты при скролле на AJAX. Еще раз повторюсь, сокеты и аяксы - это не взаимозаменяемые технологии. А Вконтакте - крайне хреновый пример, когда речь идет о применимости аякса для интернет-магазина. Сейчас диалог как-то так строится: -Надо на машину скорой помощи ставить брандспойт и чтоб цистерна воды в нее вмещалась! -Это же скорая, нахрена ей это? Им другое оборудование нужно. -Я видел, как их пожарные машины используют! Отлично работает! Если хочешь современную скорую помощь, надо и на нее поставить! --- Добавлено --- Аргументируй, пожалуйста. Чем-то кроме "а если у клиента JS не работает?". Потому что у 99.999999999999999999999999999999999999% клиентов он работает.
Потому что, по правильному на JS надо делать только то, что нельзя сделать на сервере или очень трудно.
При чем тут вселенная? Там знак процентов на конце. На дворе 2017 год. JS уже давно перестал быть костылем. А сайты давно перестали быть просто страничками статичными. Теперь сайты - это тонкие клиенты, полноценные приложения. Ты назвал бредом, к примеру, реализацию через AJAX обновления контента при применении фильтров в магазине. Потому что можно же просто перезагрузить страничку. То есть, ты назвал бредом: 1) рациональное использование ресурсов сервера; 2) снижение нагрузки на линию клиента (а в отдаленных регионах даже сраный гугл грузитья может тяжело); 3) улучшение пользовательского опыта, потому что пользование сайтом без этого вот дерганья-моргания банально приятно; 4) банальную экономию трафика (да да, в тех же отдаленных регионах он не безлимитный, а на телефонах безлимит вообще отдельная тема); 5) ускорение времени доставки контента клиенту и, в целом, лучшую конверсию трафика в профит; Действительно, бред. Кому оно только нужно? В то время как отказаться от этого, ради того, чтобы избежать использование JS потому что...ну потому что вот потому непонятно почему, потому что 20 с гаком лет назад он использовался только для всяких свистелок и перделок, которые не несли полезной нагрузки, но жрали ресурсы железа, из-за чего JS отключали - это рационально и не бред. Progressive enhancement? Нет, не слышал.
И я об этом. Точность 10^37 применима только ко всем жителям вселенной. --- Добавлено --- Пофиг, хоть 3017. Разумность применение JS определяется идеологией клиент-сервер. В первую очередь я назвал бредом то, что выделил (подчеркнул). Остальное - следствие. Экономия на спичках. Мне пофиг гугл, я его не делал. У меня ничего не дёргается. А если у них дёргается, нууу рецепт один - сменить кривой навигатор. Экономия на спичках. Экономия на спичках. Вероятно тем, кто не может писать нормальный серверный код. Мне не нужно. А тебе?
А аргументы кроме как "у меня в городе хороший интернет и у меня все работает, и, значит, у всех так", будут? Я тебя огорчу, но хороший интернет в России и в Мире далеко не везде. А мобильный хороший интернет вообще только в крупнейших городах. То, что для тебя "экономия на спичках", в реальном мире экономия денег и времени клиента. --- Добавлено --- P.S. Ты ведь в курсе, что AJAX это не "сделано на JS то, что можно сделать на сервере", а фоновая загрузка контента, который формируется...на сервере?
> То, что для тебя "экономия на спичках", в реальном мире экономия денег и времени клиента. Посчитай. А потом расскажи нам, сколько экономится. Для подсчёта возьми нормальные разработки, - плохие в зачёт не идут. п.с. Мы ведь говорим, как "надо делать"(как правильно), а не как сделано кем-то где-то?
Просто раньше писать серверный код было проще, потому как на фронте был кривой джаваскрипт да jquery. Сейчас же, во времена вебпака, реакта и прочих сокетов реализовать логику отображения на фронте на порядок быстрее, при чем сразу с свистелками и динамикой. Я даже хз о чем тут спорить можно )