本文和大家分析一下Google对于#!的新抓取规则。
大家都知道#后面代表者是hash值,这个值是不被浏览器传送到WEB服务器去响应数据信息的,目前为止所了解它的作用也就是对应的滚动到相应位置和记录前进后退动作历史。
但最近看到公司内部里的同事发共享邮件阐述了著名的微博站点“twitter”支持新的URL链接模式,就是:http://www.domain.com/a=123#!add,这种带有 “#!” 的新链接模式,原来这种链接比较适合用在ajax请求数据展示信息后,改变了新的URL链接字符串,以增加google抓取新的链接地址,也能及时的访问到ajax请求的数据信息(如果你希望Ajax生成的内容被浏览引擎读取,那么URL中可以使用"#!",Google会自动将其后面的内容转成查询字符串_escaped_fragment_的值。),可以这样理解了,访问打开链接时,请求页面数据+请求动作,#后面的就是请求动作后产生的ajax新数据,嘿嘿,感觉不错嘛!
不过既然能这样被搜录了,那对于hash值的改动,我们似乎也应该有相应的监听政策吧,在HTML5的下已经有onhashchange事件,当#值发生变化时,就会触发这个事件。IE8+、Firefox 3.6+、Chrome 5+、Safari 4.0+支持该事件。对于不支持onhashchange的浏览器,可以用setInterval监控location.hash的变化。建议去搜索一下JQUERY的hash插件,也很好用。