61. hash模式和history模式区别
1. Hash模式
在hash
模式下,URL
中的hash
部分被用来模拟一个完整的URL
,而不会触发页面重新加载。例如,当URL
为http://example.com/#/home
时,浏览器不会向服务器发送请求,而是通过JavaScript
监听hash
的变化,然后根据hash
来切换组件。
- 优点:
- 兼容性较好:
hash
模式不需要服务器端的支持,因为hash
部分的变化不会被发送到服务器端。所以,可以在任何浏览器和服务器上使用,兼容性较好。 - 简单易用:
hash
模式非常简单易用,无需任何配置即可使用。
- 缺点:
URL
不太美观:URL
中包含了一个#
,不太美观。- 安全性差:
hash
部分的内容可以被JavaScript
修改,可能会导致一些安全问题。
2. History模式
在history
模式下,URL
中的路径部分被用来管理路由,当切换路由时,浏览器会向服务器发送请求,服务器需要正确配置以避免404
错误。
- 优点:
URL
美观:与hash
模式相比,history
模式中的URL
更加美观,不包含任何#
。- 安全性好:
history
模式中的URL
是真实的URL
,可以避免一些安全问题。
- 缺点:
- 兼容性差:
history
模式需要服务器端的支持,而且要求服务器能够正确处理404
错误。在一些旧版的浏览器中,history
模式的兼容性也不太好。 - 配置复杂:使用
history
模式需要对服务器进行配置,对于一些没有服务器经验的开发者来说,可能会比较困难。
综上所述,hash
模式适合开发简单应用,而history
模式适合需要较好用户体验的应用。