Все страницы PHP включают весь набор CSS и JS, эффективный?

Я подведу итог. Пожалуйста, поправьте меня, где бы я не смог правильно сформулировать свой вопрос.

У меня есть несколько страниц PHP, все они имеют следующий формат:

<?php include "header.php"; ?> INSERT PAGE SPECIFIC MATERIAL HERE <?php include "footer.php" ?> 

header.php

 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <!-- Main CSS --> <link href="css/style.css" rel="stylesheet" type="text/css"> </head> <body> <navmenu></navmenu> 

footer.php

  <footer></footer> <!-- jQuery --> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script> <!-- Theme JavaScript --> <script src="js/main.js"></script> </body> </html> 

Я новичок в PHP и не уверен, что это правильный способ эффективно структурировать мои PHP-файлы, потому что мои проблемы:

  1. Каждая страница PHP теперь загружает одно и то же меню навигации и нижний колонтитул. Это предусмотрено, и все в порядке . Тем не менее, он также загружает ВСЕ CSS и JS вместе, даже когда есть много строк CSS и JS, где это на самом деле не полезно на этой конкретной странице, но используется на других страницах . Является ли это проблемой для беспокойства, и если да, то каким образом мы должны это делать?
  2. Должен ли я отделять мои файлы main.js, style.css, header.php и footer.php, чтобы каждая страница PHP загружала минимальную сумму, необходимую для функций тела?
  3. Какова стандартная практика при рассмотрении этого дела?

Буду признателен, если вы сможете дать совет!

Должен ли я отделять мои файлы main.js, style.css, header.php и footer.php, чтобы каждая страница PHP загружала минимальную сумму, необходимую для функций тела?

Вы должны создать ОДИН файл css и один файл js для всего веб-сайта. не используйте php-файл как css, потому что:

  1. Если у вас есть сайт с высоким посещением, лучше иметь один файл css и js. Потому что это прямой файл. но когда вы создаете css или js по php-файлу, php нужно вычислить. Может быть, вы думаете, что это очень низкий уровень расчета, но если вам нужна хорошая производительность на высоко посещаемом веб-сайте, вам нужно все увидеть.

  2. Если вы создаете css и js-файл по php, иногда вам нужно импортировать несколько js или css-файлов. Кто знает? возможно, это заставит вас использовать 10 js и 10 css внутри вашей теги! и это плохо для SEO.

  3. Не беспокойтесь об одном размере файла css или js. Это лучше с меньшим размером, но вы все равно можете создавать 100KB css или js-файл без проблемы с SEO.

  4. У вас может быть один файл css для всех носителей. принт включено. Не важно, что вы используете несколько или один файл, всегда используйте @media print{} внутри того же файла, если вам это нужно.

  5. Один файл css и js может глобально кэшировать. даже если вам не нужен файл css или js, глобальный css и js-файл уже кэшируются.

Я не говорю, что один файл css и js всегда отличная идея, но он имеет наибольшую пользу.

Если вы хотите уменьшить количество css / js на своей странице, вы можете сделать что-то вроде этого … Позвоните в свой CSS с помощью:
<link rel='stylesheet' type='text/css' href='css/style.php' />

Внутри style.php это будет выглядеть примерно так:

  <?php switch(basename($_SERVER['PHP_SELF'])){ case 'index.php': echo 'CSS code for index.php gos here'; break; case 'login.php': echo 'CSS code for login.php gos here'; break; } ?> 

Если у вас не было много стилей и javascript, которые, как подтверждают, серьезно увеличивают время загрузки, тогда все в порядке, и я бы не сделал выше.

 <?php $filename = basename(__FILE__, '.php'); ?> <link rel="stylesheet" href="css/<?= $filename ?>.css" /> 

 <script src="js/<?= $filename ?>.js"></script> 

Недостатки : 1. Именование каждого файла CSS и JS в виде файла PHP. 2. Каждый PHP-файл должен иметь свои собственные файлы CSS и JS

PS : Сведение к минимуму всех ваших стилей и сценариев только одному файлу быстрее загружает ваши страницы.

Да, это хороший подход к управлению кодом. Чтобы включить тот же заголовок и нижний колонтитул, вы можете легко добавлять / обновлять / удалять меню и другие функции без редактирования каждого файла.