ajax. Загрузка только макета второго уровня (подмакета)

#
ajax. Загрузка только макета второго уровня (подмакета)
Добрый день.
Есть страница, которая может грузиться по ajax, а может по прямой ссылке без него.
Т.е.
1) Переход по прямой сслыке:
Загружается основной макет [1], внутрь загружается подмакет [2], внутрь контент.
Макет [1]
→ Подмакет [2]


2) ajax
Можно ли сделать так, чтобы при загрузке по ajax Макет[1] не грузился, а грузился сразу только Подмакет[2]?
#
Re: ajax. Загрузка только макета второго уровня (подмакета)
Stepan0v, я вам ответил в 17:49 в Вишлисте, но продублирую свой ответ и тут.

Посмотрите еще раз внимательно на схемку отсюда http://www.hostcms.ru/forums/2/7936/page-2/#title49919
Все ajax-обработчики должны располагаться в _настройках_ ТДС, т.е. до выдачи пользователю http-заголовков. Если у вас не так, то это идеологически не верно.
Из схемки же наглядно видно, что любая работа с макетами начинается только после отдачи http-заголовков.

Из вашего вопроса следует только то, что вы допустили серьезные ошибки в интеграции, нужно так организовать макеты и xsl-шаблоны, чтобы ajax-обработчики не зависели от макетов.
Заказов не беру. Консультирую редко.
#
Re: ajax. Загрузка только макета второго уровня (подмакета)
Kotoff, это немного другая история.

Если нужно в корзине циферку поменять, то можно просто заменить в настройках и выпрыгнуть через exit()

Если нужно в div подгрузить подмакет + ИС, то весь подмакет и вывод ИС придется дублировать в настройках ДС. А этого не хочется.
#
Re: ajax. Загрузка только макета второго уровня (подмакета)
Stepan0v писал(а):
Если нужно в div подгрузить подмакет + ИС, то весь подмакет и вывод ИС придется дублировать в настройках ДС. А этого не хочется.
Сама по себе такая потребность, подгружать в div подмакет, уже очень спорное и ошибочное решение.
Попробуйте поискать другие пути решение, так чтобы ваш ajax ограничивался выводом одного лишь xsl-шаблона.
Заказов не беру. Консультирую редко.
#
Re: ajax. Загрузка только макета второго уровня (подмакета)
Kotoff, а если сайт полностью на ajax?
#
Re: ajax. Загрузка только макета второго уровня (подмакета)
Тогда тем более!
Макет должен содержать только пустые структуры сетки размещения данных, а сами данные подтягиваться по ajax (в том числе и при первой загрузке), из обработчиков в настройках ТДС.
Заказов не беру. Консультирую редко.
#
Re: ajax. Загрузка только макета второго уровня (подмакета)
Kotoff, хорошо.
Предположим в макете у нас header, footer и основной блок. На главной там слайдер и какой-то текст.
Далее ссылка, например, на магазин.
А по переходу по ней внутри основного блока должны появиться
1) блок с товарами из магазина
2) столбец с новостями
3) строка с популярными товарами
4) ещё какой-то текст
5) ещё что-нибудь

Всё это должно загружаться с главной по ajax.
А так же по прямой ссылке без ajax.

Где должна формироваться вся эта структура?
#
Re: ajax. Загрузка только макета второго уровня (подмакета)
Ну это уже кунфу 90го левела

Я бы попробовал примерно в таком направлении:
В макете только пустые блоки.

В блоках ssi-вставки которые в момент генерации страницы по прямому урлу подтягивают результат ajax-обработчиков, но не от клиента, а еще на сервере. Nginx такое позволяет, например, Apache тоже можно заставить.
А когда чистый ajax то подтягивать нужные данные уже непосредственно по запросу из браузера.
У каждого раздела - свой макет _верхнего_ уровня, который будет становится как бы вложенным, из-за ssi и/или ajax.


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

А вообще, конечно, HostCMS не очень подходит для создания чисто-ajax сайтов, и дублированием функционала без оного.
Я правда не знаю, есть ли для этого какие-то специализированные движки...
Заказов не беру. Консультирую редко.
#
Re: ajax. Загрузка только макета второго уровня (подмакета)
Ну и да, отвечу еще на исходный вопрос темы.
Stepan0v писал(а):
Можно ли сделать так, чтобы при загрузке по ajax Макет[1] не грузился, а грузился сразу только Подмакет[2]?

Я почитал исходный код модулей, и у меня сложилось мнение что нельзя.
Возможно, я не прав, и модераторы меня поправят.
Заказов не беру. Консультирую редко.
#
Re: ajax. Загрузка только макета второго уровня (подмакета)
Kotoff писал(а):
Я почитал исходный код модулей, и у меня сложилось мнение что нельзя.
Возможно, я не прав, и модераторы меня поправят.

Спасибо!
Это я и хотел узнать.
Авторизация