хорошо, чтобы включить CSS и JS файлы за пределами <html>? - PullRequest
3 голосов
/ 01 февраля 2010

Интересно, смогу ли я встроить файлы js и css в область действия HTML-документа:

<script type="text/javascript" src="../../media/js/jquery.js"></script>
<script type="text/javascript" src="../../media/js/jquery-ui.js"></script>
<link rel="stylesheet" type="text/css" media="all" href="../../media/css/cupertino/jquery-ui.css" />

<html>
   <head>
   </head>
   <body>
   <body>
</html>

это потому, что я хочу поместить их в один и тот же файл php, куда я включаю все файлы (php, js и css). Я попробовал это, и это похоже на работу. вывод html-файла будет показан точно так же, как и приведенный выше код, с включаемыми строками над html-тегом.

есть ли в этом какие-то скрытые минусы?

Ответы [ 6 ]

10 голосов
/ 01 февраля 2010

Даже если это работает , вы не должны этого делать. Этот тип вещей небрежный, и как таковой не гарантированно будет работать завтра или в будущих браузерах. Если вы не чувствуете агонию этого метода сейчас, вы будете в конечном итоге. В любом случае, нет причин, по которым вам следует это делать.

6 голосов
/ 01 февраля 2010

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

5 голосов
/ 01 февраля 2010

Не будет действительным (X) HTML.

2 голосов
/ 01 февраля 2010

Это будет работать в большинстве всех браузеров, но это не значит, что это не неправильно . Это неправильно .

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

1 голос
/ 04 февраля 2010

Возможно, выходная буферизация будет работать в этой ситуации? Буферизируйте вывод из вашего «включаемого» файла, затем захватите содержимое буфера для вывода позже, после объявления <html>. Примерно так:

В вашем файле includes.php:

<?php 
ob_start();
// here is where you output your css and js declarations
$includes = ob_get_clean();
?>

А вот ваша главная страница:

<html>
 <head>
  <title>Hello</title>
  <?php echo $includes ?>
 </head>
 <body>
 ...
0 голосов
/ 18 октября 2013

Я знаю, что это очень давно, но я хочу добавить, что Google рекомендует делать это в некоторых случаях.

Взгляните на это: https://developers.google.com/speed/docs/insights/OptimizeCSSDelivery#example

Есть мысли, почему Google выступает за неправильное кодирование HTML?

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