我买了一个主题,其中页面都是HTML,底部加载了JS脚本。我修改了主题,现在有了以下PHP文件(相当标准,php包含加载所需内容):
footer.php
content1.php
所有脚本最后仍在footer.php。
中加载我的问题在于,在每个内容页面中我都需要特定的脚本,例如content1.php需要script1.js,content2.php需要script2.js ......
这是我无法理解正确的方法:
我可以在页脚中加载所有脚本(script1.js,script2,js和script3.js),因此无论加载哪个内容,都会加载所需的脚本。但我最终加载了未使用的脚本。
例如,我有一个脚本,它从json数组生成并显示一个表(使用php和mysql查询生成)。此表仅显示在content1.php中。
我不想在页脚中加载此脚本,因为每当页面显示时它都会被执行,即使我们不需要它也是如此。而且我不能将它包含在content1.php中,因为它需要在页脚中加载的其他脚本(jQuery),即。在php包含自己之后。
这有意义吗?
答案 0 :(得分:0)
为什么不在头文件中更频繁地加载你需要的文件,即jquery并在页面底部调用他们需要的可选文件,删除页脚的所有调用
答案 1 :(得分:0)
使用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>';
}
答案 2 :(得分:0)
组合文件并在页脚中包含新文件可能会更好。一个文件会导致请求减少,但请密切关注文件大小。
答案 3 :(得分:0)
几年前做了一件小事,如下:
<?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文件:
对于页面content1.php js name将是jquery-code-content1.js
反之亦然
看看这是否有帮助
答案 4 :(得分:0)
从页脚中取出:
<script></script>
</body>
</html>
并相应地将其放在每个页面中。
答案 5 :(得分:0)
创建一个var
$script='script1.js';
在content2.php中也是如此
$script='script2.js';
和content3.php
$script='script3.js';
终于在footer.php
echo '<script src="'.$script.'"></script>';
答案 6 :(得分:0)
嗯,最简单明了的解决方案是在内容块启动之前加载jQuery。虽然建议在底部包含脚本并且很好,但它不是基石。还建议组合和压缩您的JS,这样您就可以为所有页面生成一个压缩的JS。
但您也可以尝试在呈现文档后通过AJAX加载脚本。有http://api.jquery.com/jQuery.getScript/ {{3}} 而且你知道那一点加载了什么内容。
$(document).ready(function() {
if ($("#content1").length > 0) { ... }
});
您也可以尝试将代码包装在函数中以推迟执行,直到jQuery也被加载。