我有一个正在开发的网站,其中包含“新闻”部分和“旧新闻”部分。新闻单独存储在外部PHP文件中,这些文件由服务器通过 PHP 加载(服务器计算 PHP 文件的数量并显示最后一个 - 当前新闻 - 在“新闻”部分中,所有其他文件在“旧新闻”栏目:
<!-- ####### NEWS ####### -->
<div id="news">
<h2>NEWS</h2>
<div>
<a id="showoldnews" href="#news">OLDER</a>
</div>
<?php $directory = "assets/news/"; if (glob($directory . "*.php") != false) { $newscount = count(glob($directory . "*.php")); } else {} ?>
<?php include('assets/news/news' . $newscount . '.php'); ?>
<!-- ####### OLDER NEWS ####### -->
<div id="oldnews">
<h2>OLDER NEWS</h2>
<?php
$newscount = $newscount-1;
while ($newscount>0) {
include('assets/news/news' . $newscount .'.php');
--$newscount;
}
?>
</div>
“旧新闻”部分最初是隐藏的,仅由 jQuery 触发器可见:
// Show old NEWS
$('a#showoldnews').click(function () {
$('#oldnews').show(400);
});
但我预计长期存在问题:由于首先加载所有新闻,这意味着随着越来越多的新闻出现,网站的加载速度将变慢。即使它是“可接受的”,它仍然不是理想的解决方案。
我正在考虑使用jQuery.load()
加载外部 PHP 文件,然后仅在用户要求时加载旧新闻。
问题是我不知道是否可以jQuery.load()
在用户单击链接后使用加载以下脚本:
<?php
$directory = "assets/news/";
if (glob($directory . "*.php") != false) {
$newscount = count(glob($directory . "*.php"));
}
else {
}
?>
<?php
include('assets/news/news' . $newscount . '.php');
?>
这种方法可以接受吗?我试过了,但它根本不起作用(我可以使用该load()
函数加载静态内容,但我无法让服务器处理PHP脚本。我不知道是否可以让服务器处理PHP 代码,因为 PHP 处理是在网站开始加载之前在服务器端完成的……事实并非如此。
更新#1
我有以下从服务器加载“load.php”文件的内容:
<script type="text/javascript">
$('#oldnews').load('load.php');
</script>
load.php 文件的内容是:
<div class="section" id="oldnews">
<h2>OLDER NEWS</h2>
<div class="topLink">
<a href="#">TOP</a>
</div>
<div class="topLink2">
<a id="hideoldnews" href="#news">HIDE</a>
</div>
<?php
$newscount = $newscount-1;
while ($newscount>0) {
include('assets/news/news' . $newscount .'.php');
--$newscount;
}
?>
</div>
“TOP”和“HIDE”链接出现没有任何问题。但是,PHP 块似乎根本没有被处理......