производительность — вкладки PHP или отдельные страницы

У меня есть сомнения относительно вкладок, которые есть в моем проекте. Это страница просмотра пользователя с несколькими вкладками. Каждая вкладка содержит подробную информацию, такую ​​как базовая информация о пользователе, информация о социальном профиле, навыки и т. Д. В настоящее время настройки представляют собой вкладки PHP с $_GET['tab'] значение. Они разные $_GET['tab'] для каждой вкладки и условия if проверяет $_GET['tab'] переменная и загружает содержимое включаемого файла в этой вкладке. На этой странице около 10 вкладок и 10 условий.

На самой странице есть другие включаемые файлы, такие как заголовок, нижний колонтитул, боковое меню и т. Д.

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

Мои вопросы:

  1. Влияет ли количество условий, действительно ли вносятся изменения в производительность страницы?
  2. Должен ли я перейти на отдельную страницу и иметь визуальный вид вкладки?

0

Решение

Я думаю, что лучшим способом было бы иметь файл index.php, который имеет $_GET['tab'] проверить и что использует require_once() или же include() загрузить вкладки.

Пример структуры index.php:

<?php

//...

require_once('header.php');

//...

if ($_GET['tab'] == '1')
{
require_once('first_tab.php');
}
else if ($_GET['tab'] == '2')
{
require_once('second_tab.php');
}

//...

require_once('footer.php');
?>

Нет причин беспокоиться о производительности. Используя эту логику, вам будет проще иметь чистый код и избегать файлов размером в 1 тыс. Строк.

0

Другие решения

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

В этом случае у вас будет страница с несколькими вкладками. Так что просто сравните оба метода:

Одна страница с 10 вкладками:

Плюсы:
Нужен только один файл. Однако время разработки и сопровождения здесь будет более или менее равным. Потому что, хотя вам не нужно создавать другую страницу и включать файлы шаблонов, вам придется добавить операторы IF. А для обслуживания, когда вкладка удалена, вам придется перейти в соответствующий раздел if и удалить код. С другой опцией вы можете просто удалить файл.

Минусы:
Потребуется не более 9 операторов IF, чтобы вернуть набор результатов или даже показать страницу ошибки 404 (т. Е. Недопустимое значение $ _GET).

Есть 10 разных страниц:

Плюсы:
Нет необходимости в заявлениях IF. Так что было бы немного быстрее загрузить любую из вкладок, а также вернуть страницу с ошибкой 404.

Минусы:
Вам нужно будет скопировать шаблон в 10 файлов. Тем не менее, поскольку количество вкладок никогда не будет большим, и их создание будет очень легким путем копирования первого файла, это не займет много времени. В сочетании с этим, другой метод все еще требует добавления операторов if, разницы во времени разработки нет.

Так что я бы пошел со вторым вариантом нескольких статических файлов. Параметр $ _GET предпочтителен, если у вас будет много динамических страниц (вкладок), поэтому вам не нужно создавать много статических страниц. Поскольку вкладок никогда не будет больше (10 будет максимум, я думаю), я бы сказал, что здесь рекомендуется второй вариант.

Примечание. Вышеприведенное сравнение относится к одной странице с 10 IF и 10 отдельными страницами. При включении одной страницы с файлом $ _GET с опцией белого списка (одиночный IF) разница в производительности по сравнению с отдельными страницами еще меньше, так как страница 404 вернется после одного IF & проверка массива, а не 10 IF. Таким образом, вы можете в конечном итоге сделать все, что для вас проще, если речь идет о разработке.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector