我试图通过将只在客户端的JavaScript消耗的URL传递变量。是什么将它们作为之间的区别:的JavaScript - 通过URL传递变量:#VAR = VAL VS VAR = VAL
VAR1 = VAL1 & VAR2 = VAL2
VS
#VAR1 = VAL1 & VAR2 = VAL2
?
我试图通过将只在客户端的JavaScript消耗的URL传递变量。是什么将它们作为之间的区别:的JavaScript - 通过URL传递变量:#VAR = VAL VS VAR = VAL
VAR1 = VAL1 & VAR2 = VAL2
VS
#VAR1 = VAL1 & VAR2 = VAL2
?
第一个是搜索,而第二个是哈希值。
搜索发送到服务器,但散列不是。
有一个hashchange事件,但不适合搜索。
https://developer.mozilla.org/en/DOM/window.locationenter link description here
的?
(查询部分)被发送到服务器,所述#
(散列部分)没有。
当使用散列部,也不会重新加载该页面。当使用查询部分时,它将重新加载页面。
第一个?var1=val1&var2=val2
是一个查询字符串,让我们在浏览器发出请求。
第二个是一个片段,不做新的请求。
“#”,一般是点击页面上的链接,工作作为一个页面的锚。
“?”是通过客户机/服务器传递的参数。
,服务器永远不会看到哈希标签变量,从而使国家不能在服务器上复制(因此,搜索机器人不会得到它)
这是稍微容易解析,因为location.search
标准?name=value
给你的URL
改变?
的那部分会导致页面刷新和设置#
不会