多页应用
缺点:
- 维护麻烦
- 服务器压力大
- 没有前后端分离,协作流程不清晰
优点:
- SEO效果好,因为是完全渲染好的页面
- 用户首屏耗时比较小
现阶段路由
单页应用 spa
不仅在页面的交互中是不刷新页面,跳转也不是刷新页面
前端路由的特性
- 根据不同的url渲染不同的页面
- 不刷新路由
hash
1. 怎么监听 hash 路由的改变
2. hash具体是怎么改变路由
3. 通过hash监听hash的改变
4. 通过哪些方式来改变hash
特性: 1. url中的hash值是浏览器端的一种状态,向服务器发送请求的时候,hash部分是不会携带的 2. hash的改变,并不会造成页面的刷新 3. hash值更改,会在浏览器得访问历史中增加历史记录,我们可以通过浏览器得回退、前进按钮来控制hash得切换 4. hash值得更改,通过hashchange事件
例子: www.lubai.com/#/parent www.lubai.com/#/child
<a href="#"></a>
location.hash = '#hash'
history
hash有 # 不好看
H5的出现
window.history API
back()
forward()
go()
pushState
replaceState
1. 可以使用Popstate来监听url变化
2. pushState 和 replaceState 并不会触发PopState
3. 哪些情况可以触发PopState
* 浏览器回退前进按钮
* back forward go
参数
1. state是一个对象,与只当网址相关的状态
2 title 新页面的标题
3. url 新得网址,必须与当前页面处在同一个域