JavaScript - 通过URL传递变量:#var = val vs?var = val

时间:2012-04-30 19:47:57

标签: javascript

我试图通过只传递客户端javascript的URL传递变量。传递它们之间有什么区别:

  

VAR1 = VAL1&安培; VAR2 = val2的

VS

  

#VAR1 = VAL1&安培; VAR2 = val2的

5 个答案:

答案 0 :(得分:1)

?(查询部分)被发送到服务器,#(哈希部分)没有。

使用哈希部分时,它不会重新加载页面。使用查询部分时,它将重新加载页面。

答案 1 :(得分:1)

第一个是搜索,第二个是哈希。

搜索被发送到服务器,但哈希不是。

有一个hashchange事件,但不适用于搜索。

https://developer.mozilla.org/en/DOM/window.location enter link description here

答案 2 :(得分:0)

第一个?var1=val1&var2=val2是一个查询字符串,让浏览器发出请求。

第二个是片段,不会做新的请求。

答案 3 :(得分:0)

"#"通常是在页面上单击的链接,用作页面锚点。

""是通过客户端/服务器传递的参数。

答案 4 :(得分:0)

服务器永远不会看到哈希标记变量,因此无法在服务器上复制状态(因此,搜索机器人无法获取它)

解析标准?name=value稍微容易一些,因为location.search会为您提供该部分网址

更改?会导致页面刷新,设置#将不会