Задать вопрос
@sergemin

Как правильно огранизовать подход с реализацией ajax?

Добрый день!
Делаю сейчас такой сайт и возникает много вопросов.
При переходе в секцию отображается возможность выбора квартиры, причем там можно менять секции внутри самой этой странички. Реализовать подгрузку ajax'ом не сложно.
Меня беспокоит следующее:
1. На многих форумах я читал статьи об этом и многие разработчики готовят информацию, которую нужно выгрузить ajax'ом с помощью написания сниппетов для конкретных cms.
Я же использую только ссылки. Создаю ресурс с блоком, который нужно подгрузить. Вывожу на общую страницу ссылки на дочерние ресурсы. Беру все ссылки в массив и дальше уже подгружаю
То есть я работаю только с js файлом. Насколько это правильно/неправильно?

2. В оригинале при перелистывании секций, меняется и url
Поменять url - не проблема.
history.pushState('', '', "/newpath.php");
Проблема в том, что есть обновить страницу с таким обновленным адресом, то будет отображаться (что логично) этот подгружаемый ajax'ом блок. Тогда нужно отдельно создавать ресурсы для погрузки этих маленьких блоков и отдельно соответствующие им полноценные ресурсы? То есть два шаблона?

Подскажите, пожалуйста, какой подход использовать.
Вот мой черновой вариант
  • Вопрос задан
  • 185 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
IvanCher
@IvanCher
Мысли шире
Я делал так:
  1. Делил весь шаблон на сервере по слоям(Базовый шаблон, базовый для какой-то секции, блок с информацией уникальной для каждой страницы)
  2. Если у меня приходит запрос через ajax, то сервер отдает только часть шаблона, уникальную для каждой страницы, а js уже вставляет её в нужный блок
  3. Если приходит обычный запрос, то отдается с сервера вся страница целиком, js в этом не участвует уже

Таким образом я решал проблему с тем, чтобы урл отдавал один и тот же контент хоть через js, когда по сайту ползнаешь, так и по прямой ссылке.
Сейчас я бы использовал reactjs вместе с его роутингом, но это опционально по желанию ))
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы