所以...这是一种在您的网站上使用内部链接的安全方式。通过这样做,我有索引页面生成通常的PHP内容部分并将其交给div元素。
主要问题:Google仍会使用此方法对网页编制索引吗?常识告诉我它确实..但只是双重检查,并留在这里作为一个基本的例子,如果它是。如在。
服务器端
if (isset($_REQUEST['page'])) {$pageID=$_REQUEST['page'];} else {$pageID="home";}
if (isset($_REQUEST['pageMode']) && $_REQUEST['pageMode']=="js") {
require "content/".$pageID.".php";
exit;
} // ELSE - REST OF WEBSITE WILL BE GENERATED USING THE page VARIABLE
链接
<a class='btnMenu' href='?page=home'>Home Page</a>
<a class='btnMenu' href='?page=about'>About</a>
<a class='btnMenu' href='?page=Services'>Services</a>
<a class='btnMenu' href='?page=contact'>Contact</a>
Javascript
$(function() {
$(".btnMenu").click(function(){return doNav(this);});
});
function doNav(objCaller) {
var sPage = $(objCaller).attr("href").substring(6,255);
$.get("index.php", { page: sPage, pageMode: 'js'}, function(data) {
("#siteContent").html(data).scrollTop(0);
});
return false;
}
请原谅我是否有任何错误,因为只是从我的脚本中复制并粘贴然后删除了一堆垃圾以简化它,因为仍然是原型设计/白色登上项目。所以是的,它确实看起来有点讨厌
为什么: 主要原因是带宽和速度,这将允许其他脚本运行和控制站点/应用程序更好一点,是的,它需要通过一些编码锁定。 -
进一步的例子 - 在顶部插入PHP
<?php
// PHP CODE HERE
?>
<html>
<head>
<link rel="stylesheet" type="text/css" href="style.css" />
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="scripts.js"></script>
</head>
<body>
<div class='siteBody'>
<div class='siteHeader'>
<?php
foreach ($pageList as $key => $value) {
if ($pageID == $key) {$btnClass="btnMenuSel";} else {$btnClass="btnMenu";}
echo "<a class='$btnClass' href='?page=".$key."'>".$pageList[$key]."</a>";
}
?>
</div><div id="siteContent" style='margin-top:10px;'>
<?php require "content/".$pageID.".php"; ?>
</div><div class='siteFooter'>
</div>
</div>
</body>
</html>
答案 0 :(得分:3)
不,这不是搜索引擎友好的。您正在使用JavaScript从服务器获取内容并将其显示在页面上。虽然搜索引擎在处理JavaScript生成的内容方面变得越来越好,但他们仍然无法处理这个问题(除非你遵循谷歌的可抓取Ajax标准,但网站在过去一个月里已经远离了那个最引人注目的Twitter)。
所以这对SEO不好。另外,你没有像你想象的那样节省多少带宽。节省的费用很少,带宽非常便宜,这完全没必要。事实上,你花了更多的钱,通过采取正常的操作(页面加载)使你的网站无法访问,并通过使用JavaScript来解决这个问题然后你会节省带宽成本。
是的,这是搜索引擎友好的,是渐进增强的一个很好的例子。由于链接仍然可以抓取并加载与JavaScript相同的内容,因此Google和任何未启用JavaScript的用户仍可以正常查找内容。使用JavaScript的用户可以获得更快的页面加载的额外好处,因为他们无需等待整个页面在点击链接时加载。
答案 1 :(得分:0)
目前还不清楚SEO的影响是什么。谷歌现在解释一些JavaScript。因此谷歌仍然可以 - 但不能保证 - 仍然可以阅读这些链接。通常人们想要隐藏“关于”这样的页面的链接。因此,如果Google无法阅读这些链接,您实际上可能会获得SEO优势。这是更多的pagerank集中在你关心的页面上。由于这个原因,一些大型网站实际上使用javascript生成指向此类网页的链接。
一旦生效,您可以通过查看网站管理员工具中关于我们页面的链接来检查Google是否找到了这些链接。
答案 2 :(得分:0)
我认为主播是可以的,但你应该改进服务器端脚本,因为它只输出主要内容,而不是整个页面。
通过检查$ _SERVER [&#39; HTTP_X_REQUESTED_WITH&#39;],您可以区分ajax-call和&#34; normal&#34;请求。这是jquery自动设置的标题。
如果进行了ajax调用,则输出主要内容,否则输出所有内容:doctype,html-tags以及它们之间的所有有趣内容。所以每个人都可以获得内容,甚至是爬虫和其他没有javascript的访问者。
进一步信息:http://davidwalsh.name/detect-ajax
示例:
<?php
$pageID = isset($_POST['page'])
? $_POST['page']
: "home";
if ( !$_SERVER['HTTP_X_REQUESTED_WITH'] ) {
require('content/components/header.php');
}
require "content/" . $pageID . ".php";
if ( !$_SERVER['HTTP_X_REQUESTED_WITH'] ) {
require('content/components/footer.php');
}
?>
with content / components / header.php:
<html>
<head>
<link rel="stylesheet" type="text/css" href="style.css" />
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="scripts.js"></script>
</head>
<body>
<div class='siteBody'>
<div class='siteHeader'>
<?php
foreach ($pageList as $key => $value) {
if ($pageID == $key) {$btnClass="btnMenuSel";} else {$btnClass="btnMenu";}
echo "<a class='$btnClass' href='?page=".$key."'>".$pageList[$key]."</a>";
}
?>
</div>
<div id="siteContent" style='margin-top:10px;'>
和content / components / footer.php:
</div>
<div class='siteFooter'></div>
</div>
</body>
</html>