location.hash

Location.hash解惑
1.#的涵义
表示网页中的某个位置,其右边的值就代表在网页的所在位置
在网页位置标识符有两种,其一是大家熟悉的锚点<a name="mao"></a>;其二是ID,<div id="pos"></div>

2.改变#的值不会使得网页重新加载,浏览器只会滚动到相应的位置。不会向服务器发起请求


3.window.location.hash来读取#值:
这个值可读可写,在读取时,可以用来判断网页是否发生改变,在写入时,不向服务器发起请求的前提下,创造一条历史记录。


4.onhaschange事件可以监控#值的变
化,仅支持IE8+,及主流浏览器,当然不支持的可以使用setinterval进行监控


5.Google抓取#的机制
默认情况下,Google的网络蜘蛛忽视URL的#部分。

但是,Google还规定,如果你希望Ajax生成的内容被浏览引擎读取,那么URL中可以使用"#!",Google会自动将其后面的内容转成查询字符串_escaped_fragment_的值。

比如,Google发现新版twitter的URL如下:

  http://twitter.com/#!/username

就会自动抓取另一个URL:

  http://twitter.com/?_escaped_fragment_=/username

通过这种机制,Google就可以索引动态的Ajax内容。

你可能感兴趣的:(Ajax,浏览器)