国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

javascript - 使用 _.debounce 之類的控制 input 延時(shí) ajax 調(diào)用,接口返回時(shí)間不一致怎么辦呢?

瀏覽:78日期:2023-03-23 18:01:31

問(wèn)題描述

在react的input里面的 onChange 事件綁定了一個(gè) handleOnchange 方法,這個(gè)方法調(diào)用后延時(shí)進(jìn)行 ajax 調(diào)用,如果用戶輸入 “王者榮耀”,由于打字速度問(wèn)題,最后可能會(huì)發(fā)送兩個(gè)請(qǐng)求 “王者” 、“王者榮耀”。。

這時(shí)候第一個(gè)“王者“的請(qǐng)求比第二個(gè)”王者榮耀“的請(qǐng)求返回更久,那最后渲染出來(lái)的結(jié)果就是用戶看到輸入框是”王者榮耀“,但是結(jié)果被”王者“的結(jié)果給覆蓋了。

有什么技術(shù)上可以規(guī)避這種情況的實(shí)現(xiàn)方案嗎?

問(wèn)題解答

回答1:

1、使用同步 ajax (逃 2、后臺(tái)返回的結(jié)果帶上請(qǐng)求的keyword,和當(dāng)前 input 的值做比較3、全局維護(hù)一個(gè)自增 id,每個(gè)請(qǐng)求帶上,請(qǐng)求返回的字段里再返回這個(gè) id,如果這個(gè)返回 id 和當(dāng)前頁(yè)面的 id 一致,使用數(shù)據(jù),否則丟掉

$.getJSON(’xxx.json?id=1’) 返回?cái)?shù)據(jù)里 {id:1,data: {...}}

綜上所述,方案 3 最通用,如果頁(yè)面上有多個(gè)表單查詢條件,方案 2 就很痛苦了。

標(biāo)簽: JavaScript
主站蜘蛛池模板: 康定县| 方城县| 上栗县| 南城县| 栖霞市| 铁力市| 库尔勒市| 威宁| 彭水| 新沂市| 扶沟县| 威远县| 清远市| 长宁县| 靖安县| 嫩江县| 五指山市| 麻栗坡县| 蓬安县| 柘荣县| 泾源县| 乐平市| 郓城县| 望城县| 手游| 南靖县| 来凤县| 措美县| 凤庆县| 夹江县| 中山市| 建德市| 白城市| 西乌| 汉川市| 四子王旗| 霍城县| 平度市| 永善县| 福清市| 云梦县|