SPA

为什么用SPA

    1. 减少服务器压力  如果不用spa  那么每次切换页面的时候,就会向服务器发送一个请求  

         服务器返回一个html文件   如果使用了SPA  在切换时,不需要请求服务器,只要通过本地的js来切换即可 并且服务器端不需要配置路由 完全做到前后端分离

   2. 增强用户体验  增加app流畅性 

 

SPA路由的实现方式有哪些?

1. hash方式  使用location.hash和hashchange事件实现路由

2. history api  使用html5的history api实现  主要就是popState事件等

 

SPA实现hash

1. Router构造函数  当前路由 和 路由对象

2. 初始化init监听页面加载完成与   hash变化事件  

3. 页面更新方法

4.  路由注册方法

 

SPA   history API实现方法

两个方法: history.pushState()  history.replaceState() 

一个事件: history.onpopstate

 

方法的参数:

参数1: obj 这个对象可以被popstate事件读取到  也可以在history对象中获取

参数2: title标题, 但是浏览器目前还没能实现 由于本身是个字符串 所以我们用“” 来代替

参数3:URL路径,一般设定为相对的url 绝对路径需要保证同源

       pushState 向浏览器的历史记录栈中压入一个历史记录 

 

事件的触发: 

在浏览器前进、后退时触发,一般是历史记录栈中的指针改变的时候就会触发这个事件了

 

history.state: 存储以上方法的data,不同浏览器的读写权限不一样

 

兼容: >IE10, >firefox4 ,>chrome8, safari5,opera11以上

 

为什么要使用History API

ajax的不足:

  无法使用浏览器的前进、后退来切换前后

 

数据

  单纯的使用ajax不利于搜索引擎优化

 

 

 

转载于:https://www.cnblogs.com/moneyss/p/10689403.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值