Hecc
@Hecc
Frontend. Дизайн. Шрифт.

Как правильно вызвать блок без перезагрузки страницы?

Сейчас делаю админку для плагина и задался вопросом, как правильно вызывать блок.
У меня есть список разных настроек в левом блоке и мне по клику нужно вызывать их настройки в правый блок:
86c72689c0594f08bd321d64f560add1.jpg

Можно это разделить их на отдельные страницы и не париться, но хочется это сделать без перезагрузки.

Я вижу такие варианты:
1) Сверстать настройки всех параметров и просто показывать нужный блок по клику.
+ Просто
- Может быть ресурсоемко
- Не удобно поддерживать

2) Аяксом отправлять запрос в php файл, который будет нам возвращать необходимый блок.
+ Можно удобно организовать код
+ Удобно поддерживать
- Лишние запросы ( насколько ли это критично? )

3) Создавать блоки на лету при помощи js.
+ Нету лишних запросов
- Трудно поддерживать большие блоки

Хочется понять, как делать правильно, что бы этот код потом не стыдно было кому-то показать :)
Сам я использую второй способ, все хорошо работает. Но вот насколько это правильно?
  • Вопрос задан
  • 372 просмотра
Решения вопроса 1
webinar
@webinar Куратор тега PHP
Учим yii: https://youtu.be/-WRMlGHLgRg
1) Сверстать настройки всех параметров и просто показывать нужный блок по клику.
+ Просто
- Может быть ресурсоемко
- Не удобно поддерживать

Сколько у Вас там настроек? С чего ресурсоемко? Эти вещи вообще закешировать надо и чистить кеш при изменении.
2) Аяксом отправлять запрос в php файл, который будет нам возвращать необходимый блок.

- Вот это ресурсоемко отправлять лишние запросы и делать лишние выборки из базы. Но опять таки не критично может быть. Надо понять как часто ожидаются такие запросы? Если это админка, а админов не бывает 1000, то это вполне отличный вариант.

3) Создавать блоки на лету при помощи js.

Со временем будет ад.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
п.2:
шаблон блока должен быть загружен однократно и закеширован (JS).
данные - через json (ajax)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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