比如B站收藏夹里点下一页,没有发起xmlhttprequest(控制台里没有看到xhr请求),但是返回了一个json串,实现了局部刷新的效果,这是怎么做到的
比如B站收藏夹里点下一页,没有发起xmlhttprequest(控制台里没有看到xhr请求),但是返回了一个json串,实现了局部刷新的效果,这是怎么做到的
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答1.4k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
局部刷新只是意味着往
DOM
里面添加新的元素,跟AJAX
没有必然关系的.当然一般有意义的操作是获取到新的数据,然后通过 js 将数据实时渲染给用户.而获取新数据的方式有很多种.可以通过已有数据计算而得到新的数据;或者是从浏览器支持的存储中读取,像Local Storage
,Session Storage
,IndexedDB
等等;也可以从网络中获取,AJAX
只是其中一种技术,还有其他技术像JSONP
,Comet
,SSE
,WebSocket
等等.至于B站收藏夹,是他在第一次请求的时候,就获取到所有收藏夹数据了.只是在展现的时候分页来显示,因为数据都已经在内存中了,所以点下一页不需要在去请求网络,直接从内存中读取就可以了.