Django одностраничный сайт с боковой навигационной панелью - PullRequest
0 голосов
/ 02 ноября 2018

Моя текущая настройка выглядит так (из здесь , в основном):

enter image description here

Это результат моего home просмотра. Я собираюсь сохранить эти две боковые панели и обновить только content part.

Мой вопрос: каково очевидное решение этой проблемы в Django?

Из того, что я читал до сих пор, кажется, что он использует Ajax, чтобы увидеть, что именно пользователь нажимает на боковых панелях, и возвращает только часть HTML, которая была бы div, где находятся все content. (или вернуть JSON и обновить это div в зависимости от значений JSON?)

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

Еще конкретнее: нажатием кнопки на панели навигации теперь это href - ссылки на другую страницу. Чтобы заставить его обновить только часть страницы, что должна вызывать кнопка? Должна ли она вызывать функцию jquery или есть лучший вариант?

1 Ответ

0 голосов
/ 02 ноября 2018

Если вас беспокоит только расчеты левой боковой панели, то вы можете перейти к кешированию

Django позволяет кэшировать часть страницы - боковая панель является идеальным элементом для кэширования. Если для пользователей боковая панель отличается (я вижу по крайней мере playlists пункт меню), то также возможно реализовать фрагментарное кэширование для пользователя, отметьте Варьировать заголовки часть документации.

Использование ajax усложнит ваш процесс разработки - генерируйте html / json, кодируйте / визуализируйте его на стороне пользователя, и т. Д., И т. Д., И теперь почти никто не использует django таким образом. Если вам нужно чисто одностраничное приложение, я предлагаю вам взглянуть на некоторые фреймворки javascript, такие как Angular, Vue или React + Django API backend.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...