Javascript 如何使用html5 pushstate方法将动态页面索引到google?
我正在构建一个完全支持jquery的网站,所以我正在使用ajax动态加载所有页面,以实现页面之间的奇特转换,并最大限度地提高用户体验。 以下是我的javascript代码:Javascript 如何使用html5 pushstate方法将动态页面索引到google?,javascript,ajax,pushstate,google-index,Javascript,Ajax,Pushstate,Google Index,我正在构建一个完全支持jquery的网站,所以我正在使用ajax动态加载所有页面,以实现页面之间的奇特转换,并最大限度地提高用户体验。 以下是我的javascript代码: $(function() { var path = _.compact(location.pathname.split("/")); if(path.length<2){ path = 'home' }else{ path = path[path.length
$(function() {
var path = _.compact(location.pathname.split("/"));
if(path.length<2){
path = 'home'
}else{
path = path[path.length-1];
}
activepage = path;
$('.nav a').click(function(e) {
href = $(this).attr("href");
loadContent(href);
// HISTORY.PUSHSTATE
window.history.pushState('', 'New URL: '+href, href);
e.preventDefault();
});
// THIS EVENT MAKES SURE THAT THE BACK/FORWARD BUTTONS WORK AS WELL
window.onpopstate = function(event) {
var path = _.compact(location.pathname.split("/"));
if(path.length<2){
path = 'home'
}else{
path = path[path.length-1];
}
loadContent(path);
};
});
function loadContent(url){
// USES JQUERY TO LOAD THE CONTENT
var adresa = absurl + "ajax/get_content";
$.ajax({
url: adresa,
contentType: 'application/json',
data: { url: url },
success: function(data) {
switch(url)
{
case "projects": $.projects({ data : data }); $.projects.init();
break;
case "home": $.homePage({ data : data }); $.homePage.init();
break;
default: console.log("nista");
}
}
});
}
$(函数(){
var path=\压缩(location.pathname.split(“/”);
if(path.length)允许您在使用Ajax更新页面内容时更改URI的本地部分
对于以这种方式创建的每个URI,允许服务器在不依赖JavaScript的情况下构建相同的页面
这将:
- 当访问者通过深度链接进入站点时,提供更好的性能
- 允许站点在没有JavaScript的情况下工作(包括搜索引擎机器人)
补充@Quentin的答案,您需要在PHP中确定内容是否通过ajax加载。
如果没有,您必须显示所请求页面的全部内容,包括页眉、页脚和页面内容。好的……我知道,但是我应该在代码中做些什么来实现这一点?我已经学习了许多教程,但仍然无法使其正常工作。请您提供建议?您建议过最初使用usi呈现页面吗ng php(根据URI部分填充内容)?好的,tnx很多人!我认为这不需要用php呈现内容就可以做到,只需使用一些神奇的javascript方法:)如何在php中识别内容是否通过ajax加载?提前感谢您的回答。。。