作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我制作了一个单页应用程序。我读过以下文章create-crawlable-pushstate .我在使用 hashbang 时遇到了问题。这对我来说似乎是一个解决方案。但我不太确定我是否了解那里发生的事情。这是文章中的示例:
// We're using jQuery functions to make our lives loads easier
$('nav a').click(function(e) {
url = $(this).attr("href");
//This function would get content from the server and insert it into the id="content" element
$.getJSON("content.php", {contentid : url},function (data) {
$("#content").html(data);
});
//This is where we update the address bar with the 'url' parameter
window.history.pushState('object', 'New Title', url);
//This stops the browser from actually following the link
e.preventDefault();
}
这很好,但 google 如何知道内容可用。 getJson
函数是异步的,因此状态将在内容加载之前推送。我的想法是,我在加载内容后调用 pushstate 以显示链接已准备就绪。
最佳答案
Google 不关心 JavaScript。它看到的只是 URL。
您的服务器仍然需要为每个给定的 URL 生成适当的页面。
使用 JS:
http://example.com/whatever/whatever/whatever
/whatever/whatever/whatever
的页面href="/something/something/something
Ajax</li>
<li>
防止默认`/something/something/something
无需重新加载整个页面没有 JS:
http://example.com/whatever/whatever/whatever
/whatever/whatever/whatever
的页面href="/something/something/something
Ajax</li>
<li>
防止默认`/something/something/something
(因为没有 JS 来触发 preventDefault
)然后后来有人直接去/something/something/something
同样适用。服务器传送 /something/something/something
的内容直接地。然后 JS 在单击链接时执行 Ajax 操作(如果 JS 可用)。
关于javascript - 带有 pushstate SEO 的可爬取的 javascript spa,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20632899/
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是偏离主题的,
我是一名优秀的程序员,十分优秀!