利用pushState()创建可爬行的,搜索引擎友好的AJAX网站

news/2024/5/20 22:48:28/文章来源:https://blog.csdn.net/weixin_34214500/article/details/91837367

为什么80%的码农都做不了架构师?>>>   hot3.png

      很多人喜欢用AJAX技术搭建网站,因为AJAX能带来更快的速度及更好的用户体验。但同时它给SEOer们带来了一个难题:搜索引擎蜘蛛看不懂AJAX,也就意味着你的网站不能被很好地收录。这个问题也是一直在困扰着我,一方面客户强调用户体验,要求用Ajax构建网站,另一方面还要迎合搜索引擎的口味,保证网站正常收录。今天,我就为大家介绍一个HTML5中提供的一个方法pushState(),利用此方法,上述难题迎刃而解。
pushState()只做了一件事:它可以改变用户浏览器地址栏中的路径,在它出现之前,完成相同的事情是不可能的。在我们更深入地了解它之前,有必要重申一下:它的确没做任何其它事情——没做额外的服务器请求,没有请求新的页面。然而,目前此方法并不是所有浏览器都支持,只有支持现代标准的浏览器(chrome,safari,firefox等,IE可以暂时不用考虑了)才支持此方法。
pushState()方法为SEOer带来了以下几点令人兴奋的地方:
1、你终于可以利用AJAX为你的网站带来的好处了,更快的页面加载速度和更好的用户体验。
2、由于经过pushState()方法处理过的页面URL能够准确地反映真实的页面位置,你不用担心人们在从地址栏拷贝粘贴URL并分享此链接时存在什么问题了。
3、了解到通过此方法能在即便是使用Ajax的情况下向搜索引擎提交高质量的URL,保证网站收录,你终于可以松一口气了。
示例:
我提供了一个 pushState()方法Demo页面以便通过实例来演示此方法的运行。
如果你点击导航栏中的几个城市,你会看见每次点击时只有主体内容改变了。与此同时,地址栏中的URL也随之改变了。
pushState()方法调用了三个参数:window.history.pushState(data,title,url)。前两个参数可以为空。
以下是实现此方法的具体步骤:
  • 在做任何事之前,确保你的网站在没有JS的情况下能够运行,因为google需要读懂你的网站并跟踪网站的链接。
  • 你仍然需要编写服务端代码来返回对应的内容页面,而不是全部依赖HTML静态页。
  • 指引javascript代码截取相应的内部链接的点击。我是一个jQuery fans,所以我用click()方法来完成此项任务。
  • javascript将获取所点击链接的属性然后利用JS/AJAX加载相应的内容到页面里面。
  • 最后,通过利用pushState()方法更新URL以匹配内容真实的location,你将得到SEO的全部好处。
你可以通过查看上面示例的源代码,来学习如何具体实现上述步骤。下面列出了基本代码:
// 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' parameterwindow.history.pushState('object', 'New Title', url);//This stops the browser from actually following the linke.preventDefault();
}
      重要提示:
为了保证能像demo那样完美运行,除了上述工作还有其他一些事情要做。特别是你可能想要一个“返回”按钮,这在上面的代码段中是不允许的。要加入“返回”功能,你还需要另外一个方法——popState()。它检测URL的改变,然后允许你触发任何能够抓取网页内容并加载内容的函数。更详细的内容可查看Demo的源代码页面。

转载于:https://my.oschina.net/pandao/blog/57703

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_803746.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大型网站后台构建实践

为什么80%的码农都做不了架构师?>>> 公司接了个新项目,建一个查询网站,同一时间可能会面对1万甚至以上的查询量。 普通PC环境,大约同时支持2000到3000的并发量,当然,我不排除有高手进行后台服务…

web开发设计人员不可不用的在线web工具网站和应用

日期:2013-1-4 来源:GBin1.com 大家可能还记得在过去的文章我们我们曾经介绍我们收集的前端开发人员必备的工具,脚本和资源,在今天的这篇文章中,我们将继续推荐给大家一组我们精挑细选的web开发设计必备的在线工具应用…

ASP.NET网站集成Discuz!NT 3.1论坛详细教程(同步注册和登录)

一、下载Discuz!NT 3.1下载地址:http://nt.discuz.net/showtopic-80777.html二、安装安装图文教程:http://nt.discuz.net/showtopic-128292.html以下内容摘自压缩包里的catalog.htm第 1 步:上传或解压程序包 使用 FTP 软件登录您的服务器&…

cer pem 证书转换_阿里云个人网站免费绑定SSL证书(超详细图文教程)

前言一年前搭建了个人网站,由于个人小程序绑定必须需要绑定HTTPS,于是乎绑定了SSL证书,最近阿里云一直在提醒SSL证书一年到期,提示续费;SSL证书续费几千,于是乎查找方案,阿里云提供个人免费SSL证…

网站迁移时候,发现head内容都到body里了

遇到的问题截图如下: 这个是编码问题,需要把所有涉及的文件保存成UTF-8 without BOM,手动的话可以用notepad 如果网站支持php,这边提供了一个php的脚本(clearBom.php),可以放在网站的根目录下 如果有权限问题&#xff…

php做网站步骤_SEO网站优化怎么做?超详细的SEO优化步骤和技巧分享

SEO 网站优化的步骤和技巧有哪些?这个问题困扰的都是一些刚入行SEO的新手朋友呢!因为每一个对于SEO有自己的理解的老手使用的优化步骤和技巧都不一样,每一个SEOer对于如何优化一个网站的理解都是不同的。我就以一个刚入职的SEO专员为视角&…

XAMPP修改Apache默认网站目录htdocs的图文详解

2019独角兽企业重金招聘Python工程师标准>>> XAMPP(ApacheMySQLPHPPERL)是一个功能强大的建 XAMPP 软件站集成环境包,大量站长在使用。正确安装好XAMPP后,默认是必须将php程序放到xampp\htdocs文件夹下才能运行&#x…

linux查看服务用户,linux如何查看用户属于哪个组_网站服务器运行维护

linux如何重命名文件_网站服务器运行维护linux重命名文件的方法是:1、首先,执行cd命令,进入到文件所在文件夹;2、然后,继续执行命令【mv修改前文件名 修改后文件名】即可,如【mv old.txt new.txt】。linux查…

CSS关于SEO优化的细节

对于任何一个网站来说名字是SEO的首选,而H1标签是搜索引擎认为页面上最重要的文字部门,所以我们要把网站的名字放在H1中;问题是代表网站名字的通常是一个LOGO图片,而图片对于SEO来说是不友好的。请看下面jquery的首页的logo部分的…

jQuery里的mouseover与mouseenter事件类型区别

JQ里面有mouseover和mouseenter 2个事件类型干着差不多的活,用不好经常出现些小问题。 今天我解释一下原理: 事件类型翻译:mouseover     鼠标移上mouseenter    鼠标移进 jQuery的 mouseover 绝对等于原生js的 onmouseover&#x…

教师资格证查询成绩网站服务器,教师资格证成绩查询系统入口

2020江西教师资格证成绩即将快公布啦,掌握查询考试信息有利于考生更好掌握成绩,下面出国留学网小编为你准备了“2020下半年江西教师资格证成绩查询系统入口12月10日起”内容,仅供参考,祝大家在本站阅读愉快!2020下半年…

美工一流的个人网站源码系列(3),不漂亮你可以不下载!

美工一流的个人网站源码系列(3),不漂亮你可以不下载!后台用户名和密码都是admin下载地址:[url]http://down.599cn.com/599cndown/aspdown/soft2/[/url]个人源码3◎[url]www.599cn.com.rar[/url]转载于:https://blog.51…

css常用指南,响应式网站的开发方式,简单例子

第一种,写一个css文件 .zong{width: 100%;border: 1px solid rebeccapurple;display: flex;flex-direction: row;flex-wrap: wrap; } /* 超小屏幕 */ media only screen and (max-width:767px){.zong div{width: 100%;background-color: blue;} } /* 小屏幕 */ med…

gotohtml致力打造国内最专业的网站模版服务

2019独角兽企业重金招聘Python工程师标准>>> gotohtml致力打造国内最专业的网站模版服务 Zen Cart是一个多语言电子商务系统,该系统拥有通用银行汇款模块,搜索引擎优化模块,销售分析等模块,做国际电子商务的首选 服务标…

全新网站后台管理系统下载 微信公众号 CMS 工作流 ERP

说明: JAVA SpringMVCmybatis(mysql 、oracle 、sqlserver ) 获取【下载地址】 内置功能 1. 用户管理:用户是系统操作者,该功能主要完成系统用户配置。 2. 组织管理:无限级配置系统组织机构&…

高性能网站架构设计之缓存篇(4)- Redis 集群(上)

集群技术是构建高性能网站架构的重要手段,试想在网站承受高并发访问压力的同时,还需要从海量数据中查询出满足条件的数据,并快速响应,我们必然想到的是将数据进行切片,把数据根据某种规则放入多个不同的服务器节点&…

大型网站架构演变和知识体系(4)

架构演变第九步:数据读写分离和廉价存储方案 突然有一天,发现这个完美的时代也要结束了,数据库的噩梦又一次出现在眼前了,由于添加的webserver太多了,导致数据库连接的资源还是不够用,而这个时候又已经分库…

高性能网站架构设计之缓存篇(6)- Redis 集群命令

一、集群的特点3、集群优缺点优点:在master节点下线后,slave节点会自动提升为master节点,保存集群持续提供服务;fail节点恢复后,会自动添加到集群中,变成slave节点缺点:由于redis的复制使用异步…

高性能网站架构设计之缓存篇(7)- Redis哨兵sentinel机制用法与说明

概述 Redis-Sentinel是Redis官方推荐的高可用性(HA)解决方案,当用Redis做Master-slave的高可用方案时,假如master宕机了,Redis本身(包括它的很多客户端)都没有实现自动进行主备切换,而Redis-sentinel本身也是一个独立运行的进程&a…

高性能网站架构设计之缓存篇(8)- Redis哨兵Sentinel的搭建和原理说明

原文地址:http://www.cnblogs.com/zhoujinyi/p/5570024.html 背景: Redis-Sentinel是Redis官方推荐的高可用性(HA)解决方案,当用Redis做Master-slave的高可用方案时,假如master宕机了,Redis本身(包括它的很多客户端)都…