日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

谣言粉碎机 - 极短时间内发送两个Odata request,前一个会自动被cancel掉?

發布時間:2023/12/19 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 谣言粉碎机 - 极短时间内发送两个Odata request,前一个会自动被cancel掉? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

背景

有時我們能在Chrome開發者工具的Network tab里觀察到SAP UI5應用會發出某些狀態為"取消"的OData請求。如下圖第五個請求。

之前有一種似是而非的說法:極短時間內發送兩個OData請求,則第一個會自動被cancel掉。

這個說法從字面上看,有兩點值得推敲:

1. cancel掉,被誰cancel掉?UI5框架還是Chrome?

2. “極短”,多短算極短?

我用代碼在for循環里一共發10個OData請求:

無論是同步還是異步,都沒有任何的請求被cancel。

10個同步請求:

10個異步請求:

就算發100個request都不會有一個request被cancel:

驗證結果,之前的說法“極短時間內發送兩個OData request,前一個會自動被cancel掉”是錯誤的。

那再回到本文第一張圖觀察到的cancel的場景, 原因究竟是什么?

觀察產生了被取消的OData請求的應用代碼,觀察到第523行有這個refresh操作:

在這個方法的第601行,bChangeDetected變量為true導致abortPendingRequest的調用。

abortPendingRequest的注釋已經很清楚地說明問題了。

什么情況下會導致AbortPendingRequest? 直接使用Chrome開發者工具的全文搜索得到答案:OData model的三個API: filter, sort, refresh

下面是我的同事Li Ben的進一步補充。

關于這個現象發生的原因和條件的問題

1. 在哪里可以看到這個cancel現象?

在我們的live search功能上,如果輸入較快或者正常速度輸入,會看到前面很多輸入請求都會被cancel掉:

如果輸入較慢則不會:

真的是快慢的原因嗎?

仔細觀察network發現,真正的原因是當上一次的network還處于pending狀態的時候,繼續輸入發起的請求就會cancel掉上一次的請求:

繼續深究, 這是在哪里做到的?

在SAP UI5的OData框架里面有這樣的實現:

在ODataModel.js中維護了一個http request的pending list,將已經發送但是還沒有收到響應的request對象都緩存在這個列表中:

每次發起OData請求的時候都會調用ODataModel的_request()方法,這個方法會把當前的request加到pending list中,并且通過一個wrap method包裝回調函數,確保在響應返回的時候首先把緩存的request對象從pending list中拿掉:

每次在OData Model上發起filter, sort, refresh操作的時候,都會檢查是否存在pending的request對象,如果存在未完成的請求,abort掉它:

回答上面的問題,在什么情況下會發生這種現象?

1. 同一個ODataModel的instance上發出的連續請求,因為pending list是緩存在this級別上面的。

2. 前一個Http請求的network還處于pending status的時候。

3. 就讀ODataModel的代碼和觀察到的現象,在ODataModel上發起filter, sort或者refresh的時候。

為什么在OData的request對象上發起abort調用就可以取消底層的network call?

簡單的說,UI5里面的OData Request對象是底層的Ajax Request對象XmlHttpRequest的一個代理,在ODataModel的_submit方法中:

具體實現是UI5中利用了一個第三方的庫datajs,datajs最終會調用瀏覽器的底層http對象XMLHttpRequest:

要獲取更多Jerry的原創技術文章,請關注公眾號"汪子熙":

總結

以上是生活随笔為你收集整理的谣言粉碎机 - 极短时间内发送两个Odata request,前一个会自动被cancel掉?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 中文字幕激情视频 | 亚洲伊人婷婷 | 精品美女在线 | 九一精品国产 | 超碰人人爱人人 | 亚洲一区二区三区91 | wwwxxx欧美| 日韩精品中字 | 色八戒av | 人人妻人人爽欧美成人一区 | 日本中出视频 | 欧美日韩色视频 | 精品国产一二三四区 | 国产精品无 | 欧美人与动物xxx | 欧美性猛交xxxx乱 | 求一个黄色网址 | 少妇熟女视频一区二区三区 | 在线免费观看高清视频 | 午夜资源网| 亚洲区小说区 | 欧美国产精品一区二区三区 | 自拍偷拍色 | 亚洲综合三区 | 91极品国产 | 爱上av| 久久国产精品波多野结衣av | 亚洲免费色图 | 国产精品伦一区二区三级视频 | 亚洲一区有码 | 国产精品视频网址 | 男人的天堂日韩 | 国产精品s | 国产av无码专区亚洲av毛片搜 | 蜜桃视频在线观看一区二区 | 久久精品无码一区二区三区毛片 | 日本理论片午伦夜理片在线观看 | 麻豆精品一区 | 日本网站在线播放 | 日本黄色生活片 | 久久婷婷五月国产色综合激情 | 最近免费中文字幕大全免费版视频 | 精品中文一区二区三区 | 韩国三级丰满少妇高潮 | 欧美 日韩 国产 中文 | 欧美激情片一区二区 | 狠狠操欧美 | 青青草华人在线视频 | 黄色一级视频网站 | 777奇米色 | 欧美日韩一区二区三区在线视频 | 中文字幕日韩亚洲 | 日本全黄裸体片 | 国产成年人视频 | 草草视频在线 | 欧美精品黄| 一级全黄裸体免费观看视频 | 强伦轩人妻一区二区电影 | 国产精品自在线 | 99精品久久 | 环太平洋3:泰坦崛起 | 又黄又爽又刺激的视频 | 催眠调教后宫乱淫校园 | www伊人 | 黄色你懂的| 理论视频在线观看 | 欧美sm极限捆绑bd | 免费在线成人av | 亚洲射射 | 91视频污在线观看 | 国产91精品ai换脸 | 成人二三区 | 天天高潮夜夜爽 | 操丝袜美女视频 | 国产精品久久久久aaaa | 亚洲欧美日韩国产精品 | 57pao国产成永久免费视频 | 麻豆视频在线观看 | 四虎成人在线 | 国产最新在线 | 三级免费黄录像 | 国产精品白嫩白嫩大学美女 | 国产乱码久久久 | 91久久中文字幕 | 综合网五月天 | 免费看片黄色 | 免费毛片视频 | 五月婷婷开心中文字幕 | 国产欧美日韩精品一区 | 精品一区二区三区视频 | 亚洲视频 欧美视频 | 免费的毛片网站 | 久久成人乱码欧美精品一区二区 | 毛片999| 放几个免费的毛片出来看 | 久久中文字 | 美女张开双腿让男人捅 | 手机av在线看 | 激情成人综合网 |