javascript - 連動選單的同步過期問題
我想大声告诉你
我想大声告诉你 2017-05-18 10:58:31
0
1
550

今天看到一篇實現無限級聯式選單的文章,看到作者在處理資料過期時我沒琢磨明白;

  • 容易想到的是非同步過期的問題:設想第一層選單發生變化,觸發第二層選單內容的拉取,但網速較慢,過程需要3秒。 1秒後使用者再次改變第一級選單,再次觸發第二層選單內容的拉取,此時網速較快,1秒後資料返回,第二層選單重新渲染;但是1秒後,第一次請求的結果返回,第二級菜單再次被渲染,但事實上第一級菜單此後已經發生過變化,內容已經過期,此次渲染是錯誤的。我們可以用閉包進行資料過期校驗。

  • 不容易想到的是同步過期(其實也是異步,只是未經io交互,都是緩衝時間為0的timeout函數)的問題,即由於事件隊列的存在,稍不謹慎就可能出現過期,程式碼中會有相關註解。

第一種過期能想明白 第二種是啥原因呢?怎麼造成的呢?

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

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

作者說了嘛,就是緩衝時間為0的timeout函數.第一級選單對第二層選單的更新如果是寫在setTimeout()函數中,就是非同步操作,同樣會出現後面操作先更新介面,前面操作結果過期.

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板