远程搜索,怎么样保证数据的顺序不是错乱的?
在制作远程搜索组件时,输入数据以后,如果由于网络不好导致前面的数据在后面数据先返回。怎么样才能保证返回的数据是绝对正确的,不会由于网络等原因发生顺序错乱。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
在制作远程搜索组件时,输入数据以后,如果由于网络不好导致前面的数据在后面数据先返回。怎么样才能保证返回的数据是绝对正确的,不会由于网络等原因发生顺序错乱。
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(3)
利用变量作用域的特性,可以每次异步请求前记录一下当前加载的标识值(可以用关键词或者别的能标识的东西充当),异步结束后判断一下改值是否变化即可。
举例:
当然了,必要的函数防抖策略还是要有的。
在你触发远程搜索的地方加一个变量表达version,然后端配合一下响应中带上请求的version,然后你就可以抛弃掉一些不需要的响应了。
当然如果后端不愿意配合。。。看看别人有没有好的想法
方案一:
xhr和fetch都支持abort(中止),可以了解下相关的解决方案
方案二:
每次请求前保存一个uuid,请求完成后,将该次请求的uuid和最新的uuid比较