我买了一个主题,其中页面都是HTML,底部加载了JS脚本。我修改了主题,现在有以下内容的PHP文件(非常标准,使用php包括加载所需的内容):
- 索引.php
- 标题.php
- 菜单.php
-
页脚.php
-
内容1.php
- 内容2.php
- 内容3.php
- 。
所有脚本仍然在末尾以页脚.php加载。
我的问题是,在每个内容页面中,我需要特定的脚本,例如内容 1.php需要脚本 1.js,内容 2.php需要脚本 2.js......
这是我难以理解正确的方法的地方:
我可以在页脚中加载所有脚本(script1.js、script2,js 和 script3.js),因此无论加载什么内容,都会加载所需的脚本。但我最终加载了未使用的脚本。
例如,我有一个脚本,可以从 json 数组生成并显示一个表(使用 php 和 mysql 查询生成)。此表仅显示在 content1.php 中。
我不想在页脚中加载此脚本,因为即使我们不需要它,每次显示页面时也会执行它。而且我不能将其包含在content1中.php因为它需要加载在页脚中的其他脚本(jQuery),即。在 PHP 包含自身之后。
这有意义吗?
使用 PHP 条件(if/else 或 switch,这可能更好)来检查 URL 值并为 header.php 中的页面加载适当的脚本。下面是非常粗略的例子。
$url = 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
if (strpos($url,'content1') !== FALSE) {
echo '<script src="script1.js"></script>';
}
elseif (strpos($url,'content2') !== FALSE) {
echo '<script src="script2.js"></script>';
}
为什么不在头文件中更频繁地加载您需要的文件,即jquery,并通过从页脚中删除所有调用来调用页面底部所需的可选文件
最好合并文件并将新文件包含在页脚中。一个文件将导致更少的请求,但请注意文件大小。
几年前做了一件小事,如下所示:
<?php
if(getPageJsname()!='') {
?>
<script type="text/javascript" src="jquery-code-<?php echo getPageJsname(); ?>.js"></script>
<?php
}
?>
function getPageJsname() {
return $scriptname = trim($_SERVER['SCRIPT_NAME'], "/");
}
在此之后,您可以重命名所有javascript文件,如下所示:
对于页面内容 1.php JS 名称将是 jquery-code-content1.js
反之亦然
看看这是否有帮助
把它从页脚中取出:
<script></script>
</body>
</html>
并相应地将其放在每页中。
在 content1 中.php创建一个变量
$script='script1.js';
内容相同2.php
$script='script2.js';
和内容3.php
$script='script3.js';
最后在页脚.php
echo '<script src="'.$script.'"></script>';
嗯,最简单和明显的解决方案是在内容块开始之前加载jQuery。虽然建议在底部包含脚本并且很好,但它不是基石。还建议合并和压缩您的 JS,以便您可以为所有页面生成一个压缩的 JS。
但您也可以尝试在呈现文档后通过 AJAX 加载脚本。有 http://api.jquery.com/jQuery.getScript/而且您知道此时加载了哪些内容。
$(document).ready(function() {
if ($("#content1").length > 0) { ... }
});
你也可以尝试将代码包装在函数中,以推迟它的执行,直到jQuery也被加载。