javascript - 联动菜单的同步过期问题
我想大声告诉你
我想大声告诉你 2017-05-18 10:58:31
0
1
528

今天看到一篇实现无限级联动菜单的文章,看到作者在处理数据过期时我没琢磨明白;

  • 容易想到的是异步过期的问题:设想第一级菜单发生变化,触发对第二级菜单内容的拉取,但网速较慢,该过程需要3秒。1秒后用户再次改变第一级菜单,再次触发对第二级菜单内容的拉取,此时网速较快,1秒后数据返回,第二级菜单重新渲染;但是1秒后,第一次请求的结果返回,第二级菜单再次被渲染,但事实上第一级菜单此后已经发生过变化,内容已经过期,此次渲染是错误的。我们可以用闭包进行数据过期校验。

  • 不容易想到的是同步过期(其实也是异步,只是未经io交互,都是缓冲时间为0的timeout函数)的问题,即由于事件队列的存在,稍不谨慎就可能出现过期,代码中会有相关注释。

第一种过期能想明白 第二种是啥原因呢?怎么造成的呢?

我想大声告诉你
我想大声告诉你

全部回复(1)
淡淡烟草味

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板