之前我问了这个问题,但我得到了几个负面分数,但这一次我要求它更清楚。
我在网站上有这个结构:
如果用户点击主页锚点到其他页面,嵌入到On click event
的AJAX功能将运行,URL地址将使用Window.history.PushState
更改。
问题是如果用户输入其他页面的URL而不是点击锚点,我们可以做什么?例如,如果用户输入:http://example.com/pages/about 那么只有该页面的元素才会加载,而不需要主页的资源和脚本。
我想解决这样的问题:
此解决方案可以采用客户端(javascript)方式吗?我也知道一点PHP。
看看Cloudflare面板,看看我的意思:https://www.cloudflare.com/a/overview
答案 0 :(得分:0)
我做了一些研究(感谢评论),这是我的首选解决方案。我不想改变标记,所以模板引擎不是我的选择。
1.将此PHP脚本保存在PHP文件中。
<?php
/* Detect AJAX */
if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
/* If it is AJAX do this */
}
else {
/* If it is not AJAX do this; In my case I did echo all scripts and resources that I wanted to be in AJAX addresses */
echo '
<script src="example.js"></script>
';
}
2.在具有AJAX和HTTP请求的页面中的PHP脚本文件之上的链接。在我的情况下,我把它放在所有其他页面而不是主页。
<?php include "../script.php"; ?>
3.配置您的网络服务器以支持HTML文件扩展名中的PHP脚本。我的网络服务器是Apache,所以我在.htaccess文件中写了这行。
AddType application/x-httpd-php .htm .html