淘宝京东首页刷新原理

背景:
1、淘宝京东的首页不同模块,是异步调用不同接口返回数据。

问题:
1、异步调用时,难道是返回一个数据,全局刷新一下数据?局部刷新数据(局部刷新发现有显示不出来情况)?
2、还是等全部回来才刷新?怎么等全部回来?

阅读 4.7k
3 个回答

呃,你问的到底是 iOS 还是网页,怎么楼上两位说的都是网页的事 = =

iOS 的话,一般返回一个数据刷新对应的部分就可以。更新 view 的刷新局部,更新 tableView 的 reload 一下就行,因为有重用所以不会卡…… 不用等全部回来才刷新。

阿里已经开源了他们的Weex前端库,这也是一个用Virtual DOMJs库,后端的数据传递到前端时,Js即把数据渲染到Virtual DOM里,之后通过Virtual DOM与真实的HTML DOM进行比对,然后只对有修改的DOM进行更新,把对前端性能的影响降到最低。

这个要具体分析,因为如果每次接口返回就去更新DOM的话会触发的layer的重新计算比较消耗性能,所以最好的是等同个模块的所以数据返回后统一渲染,这也就意味着网络等待要长一点。所以要综合考虑,现在常见的做法就是一次渲染,后期的网络请求只涉及到数据的更新不设计的DOM的更改。就像现在有些页面就去看到的都是写空白的框架然后毛毛填充内容

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题