指导浏览器动作的,对服务器端完全无用
优采云 发布时间: 2021-06-28 05:18指导浏览器动作的,对服务器端完全无用
# 用于引导浏览器动作,在服务器端完全没用。因此,# 不收录在 HTTP 请求中。
比如访问下面这个网站,浏览器实际发送的请求是这样的:
GET /index.html HTTP/1.1
Host: www.example.com
三、#后面的字符
出现在第一个 # 之后的任何字符都将被浏览器解释为位置标识符。这意味着这些字符都不会发送到服务器。
比如下面这个网址的初衷是指定一个颜色值:,但是浏览器实际发送的请求是:
GET /?color= HTTP/1.1
Host: www.example.com
四、改#不触发网页重新加载
单次更改#后的部分,浏览器只会滚动到对应位置,不会重新加载网页。
例如,如果您将#location1 更改为#location2,浏览器将不会再次向服务器请求index.html。
五、改#会改变浏览器的访问历史
每次更改#后的部分,都会在浏览器的访问历史中添加一条记录。使用“返回”按钮返回到之前的位置。这对 ajax 应用程序特别有用。可以用不同的#值来表示不同的访问状态,然后给用户一个链接来访问某个状态。值得注意的是,以上规则对IE 6和IE 7无效,不会因为#的变化而增加历史记录。
六、window.location.hash 读取#value
属性 window.location.hash 是可读可写的。阅读时,可以用来判断网页的状态是否发生了变化;写入时会创建访问历史记录,无需重新加载网页。
七、onhashchange 事件
这是一个新的 HTML 5 事件。当#value 发生变化时,将触发此事件。 IE8+、Firefox 3.6+、Chrome 5+、Safari 4.0+ 支持此事件。
共有三种使用方式:
对于不支持onhashchange的浏览器,可以使用setInterval来监控location.hash的变化。
八、GoogleGrabber#的机制
默认情况下,Google 的网络蜘蛛会忽略 URL 的 # 部分。
不过,Google 也规定,如果希望 Ajax 生成的内容被浏览器引擎读取,可以使用“#!”在 URL 中,Google 会自动将其后面的内容转换为查询字符串 _escaped_fragment_ 的值。
比如谷歌找到了新版推特的网址:
将自动获取另一个 URL:_escaped_fragment_=/username
通过这种机制,Google 可以索引动态 Ajax 内容。
注意
AJAX= 异步 JavaScript 和 XML(标准通用标记语言的一个子集)。 AJAX 是一种用于创建快速动态网页的技术。
2.?
1)连接函数:例如
http://www.xxx.com/Show.asp?id=77&nameid=2905210001&page=1
2)清除缓存:例如
http://www.xxxxx.com/index.html
http://www.xxxxx.com/index.html?test123123
两个url打开的页面是一样的,只是后面有个问号,表示没有调用缓存的内容,而是考虑了一个新的地址,重新读取。
3.&
不同参数的垫片
关于js获取URL信息
设置或获取对象指定的文件名或路径。
警报(window.location.pathname)
将整个 URL 设置或获取为字符串。
警报(window.location.href);
设置或获取与 URL 关联的端口号。
警报(window.location.port)
设置或获取 URL 的协议部分。
警报(window.location.protocol)
设置或获取href属性中井号“#”后的部分。
警报(window.location.hash)
设置或获取位置或 URL 的主机名和端口号。
警报(window.location.host)
设置或获取 href 属性中问号后面的部分。
警报(window.location.search)
获取变量的值(截取等号后的部分)
var url = window.location.search;
// alert(url.length);
// alert(url.lastIndexOf('='));
var loc = url.substring(url.lastIndexOf('=')+1, url.length);