Я использую google chart js library только на одной странице моего проекта, и у меня есть внешний и глобальный верхний и нижний колонтитулы. head находятся в файле head.php, и в него включены необходимые библиотеки js. Анатомия моих страниц такова:
<?php
require('header.php');
?>
<div>my body elements of this page lie here </div>
<?php
require('footer.php');
?>
Я могу включить библиотеку google диаграмм в header.php. Он будет загружен на каждую страницу, но мне нужно его только на одной странице. Поэтому я не хочу замедлять загрузку. Как включить эту библиотеку только в том случае, если я загружаю эту страницу? Является ли это возможным? Заранее спасибо.
Просто добавьте переменную, прежде чем включать заголовок, и проверьте эту переменную в header.php
<?php
//page that requires the js
$chartjs = true;
require('header.php');
?>
<div>my body elements of this page lie here </div>
<?php
require('footer.php');
?>
,
<?php
//header.php
if(isset($chartjs) && $chartjs){
//inlcude js file here
}
footer.php
если это так. Отличный и простой ответ, хотя :)
Альтернативно, вы можете загрузить его условно через JavaScript в зависимости от контекста страницы, я буду использовать jQuery здесь для удобства использования с его стороной Ajax, например:
<div class="chart"></div>
<script>
var $charts = $('.chart');
if ( $charts.length ) {
$.getScript("charts.js", function(){
$charts.plot(); //init.
});
}
</script>
Однако это замедлит загрузку диаграммы. Кроме того, для справки о том, как загрузить без библиотеки jQuery, см. Загрузка сценариев после загрузки страницы. для некоторых хороших ссылок на сценарии загрузки после страницы.
Ссылка $.getScript
У вас есть несколько вариантов. Во-первых, Стив рекомендовал в своем ответе.
Я хотел бы использовать это на странице диаграммы:
require('header.php');
?>
<script type="text/javascript" src="chart.js"></script>
<div>my body elements of this page lie here </div>
<?php
require('footer.php');
Другой - проверить $_SERVER["REQUEST_URI"]
и включить только в заголовок, это указанная страница.