为了账号安全,请及时绑定邮箱和手机立即绑定

联动菜单的同步过期问题

联动菜单的同步过期问题

蝴蝶刀刀 2018-11-08 10:15:51
今天看到一篇实现无限级联动菜单的文章,看到作者在处理数据过期时我没琢磨明白;容易想到的是异步过期的问题:设想第一级菜单发生变化,触发对第二级菜单内容的拉取,但网速较慢,该过程需要3秒。1秒后用户再次改变第一级菜单,再次触发对第二级菜单内容的拉取,此时网速较快,1秒后数据返回,第二级菜单重新渲染;但是1秒后,第一次请求的结果返回,第二级菜单再次被渲染,但事实上第一级菜单此后已经发生过变化,内容已经过期,此次渲染是错误的。我们可以用闭包进行数据过期校验。不容易想到的是同步过期(其实也是异步,只是未经io交互,都是缓冲时间为0的timeout函数)的问题,即由于事件队列的存在,稍不谨慎就可能出现过期,代码中会有相关注释。第一种过期能想明白 第二种是啥原因呢?怎么造成的呢?
查看完整描述

1 回答

?
慕莱坞森

TA贡献1810条经验 获得超4个赞

作者说了嘛,就是缓冲时间为0的timeout函数.第一级菜单对第二级菜单的更新如果是写在setTimeout()函数中,就是异步操作,同样会出现后面操作先更新界面,前面操作结果过期.


查看完整回答
反对 回复 2018-12-14
  • 1 回答
  • 0 关注
  • 424 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信