最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

如何解決Ajax的content-download時(shí)間過慢問題

 更新時(shí)間:2018年04月24日 17:04:02   作者:毛絨貓貓  
這篇文章主要介紹了Ajax的content-download時(shí)間過慢問題的解決方法及思考過程,本文通過事件背景,過程分析,給大家介紹的非常詳細(xì),需要的朋友參考下吧

前言:

今天這篇文章給大家介紹關(guān)于ajax的content-download時(shí)間過慢問題的解決與思考。

事件背景:

開發(fā)人員反饋給我一個(gè)bug,ajax相應(yīng)速度很慢,經(jīng)過定位,速度慢的原因在于,content-download時(shí)間過長(zhǎng),在chrome中有2s+的延遲,后證實(shí)在我們的手機(jī)客戶端里也有這一延遲。截圖如下:

 

過程分析:

1.定位原因:

首先,看到這一延遲,第一反應(yīng)這不是前端bug,并反饋給后端同學(xué)。but,通過后端定位發(fā)現(xiàn)接口反饋時(shí)間非常迅速,翻閱國外文獻(xiàn)事實(shí)證明,這是由于瀏覽器事件不標(biāo)準(zhǔn)引起的bug。

2.bug分析:

通過對(duì)開發(fā)同學(xué)的溝通,我發(fā)現(xiàn)bug有兩個(gè)特點(diǎn),第一,這一延遲只存在需要上拉加載而引起ajax請(qǐng)求的情況下,且統(tǒng)一環(huán)境和瀏覽器下延遲時(shí)間相似,都在2-3s之間。

第二,部分上拉加載的組件雖然也觸發(fā)ajax,但并未有延遲。

于是開始了前端,原因的定位,首先找想通點(diǎn):由于我們的項(xiàng)目架構(gòu)設(shè)計(jì),全部的上拉加載都是由一個(gè)基礎(chǔ)組件pagger 完成的,其部分代碼如圖所示,原理是通過瀏覽器的scroll事件和resize事件不停的去檢測(cè)組件是否在可視區(qū)域中,如果是則觸發(fā)hasMore函數(shù)。

 

其次,查看出現(xiàn)延遲問題的業(yè)務(wù)頁面和不出現(xiàn)延遲的業(yè)務(wù)頁面對(duì)這一組件的調(diào)用區(qū)別。

通過對(duì)比,也沒有發(fā)現(xiàn)兩個(gè)組件有何不同。(故這一奧秘,有興趣的同學(xué)可以聯(lián)系我一起討論。。。。。我可以把源碼發(fā)給你)

經(jīng)過多次的重現(xiàn)問題,明顯看到在pc的chrome,使用touch模式延遲偶爾消失,而使用mousewheel延遲又出現(xiàn)。故將問題定位到mousewheel事件 和其相近對(duì)應(yīng)的 scroll事件中。

bug解決:

結(jié)合上訴原因并通過查看的幾個(gè)帖子討論,得出如下結(jié)論:

1.chrome瀏覽器的mousewheel事件是引起這一延遲的原因(mousewheel事件不是標(biāo)準(zhǔn)事件,不推薦大家使用),當(dāng)然!代碼中我并沒有使用mousewheel事件,但是使用scroll事件就可能會(huì)引起mousewheel事件的沖突,而在我們特質(zhì)的手機(jī)客戶端中的webview不幸的也命中了這一缺陷。

2.想要解決這個(gè)問題,可以嘗試監(jiān)聽這一事件(如果瀏覽器沒有這一事件,也不會(huì)響應(yīng)這一監(jiān)聽,沒有沖突),并在事件觸發(fā)的時(shí)候,取消其所有默認(rèn)行為:

故通過監(jiān)聽其事件模型的 deltaY(鼠標(biāo)垂直滾動(dòng)量)當(dāng)其有垂直位移的時(shí)候,觸發(fā)preventDefault,故代碼如下:

 window.addEventListener("mousewheel", (e) => {
   if (e.deltaY === 1) {
     e.preventDefault();
   }
 })

將這段代碼加入前端基礎(chǔ)庫的頁面初始化代碼中,神奇的發(fā)現(xiàn)相關(guān)的頁面content-download延遲問題都得到了解決。

總結(jié):

兼容性問題的本質(zhì):   

webkit架構(gòu)中,有一些模塊在瀏覽器中是普遍不共享的,有一些模塊在瀏覽器中是某些特性不共享的,而且可以通過不同的編譯配置改變它們的行為。所以,很多使用webkit的瀏覽器可能會(huì)表現(xiàn)出不同的行為。

以上所述是小編給大家介紹的解決Ajax的content-download時(shí)間過慢問題,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • 基于Ajax技術(shù)實(shí)現(xiàn)無刷新用戶登錄功能

    基于Ajax技術(shù)實(shí)現(xiàn)無刷新用戶登錄功能

    這篇文章主要介紹了基于Ajax技術(shù)實(shí)現(xiàn)無刷新用戶登錄功能,非常不錯(cuò),具有參考借鑒價(jià)值,需要的的朋友參考下吧
    2017-01-01
  • ajax請(qǐng)求攜帶自定義請(qǐng)求頭header(跨域和同域)案例實(shí)戰(zhàn)教程

    ajax請(qǐng)求攜帶自定義請(qǐng)求頭header(跨域和同域)案例實(shí)戰(zhàn)教程

    這篇文章主要介紹了ajax請(qǐng)求攜帶自定義請(qǐng)求頭header(跨域和同域)案例實(shí)戰(zhàn)教程,ajax請(qǐng)求是有同源策略的,雖然可以應(yīng)用CORS等手段來實(shí)現(xiàn)跨域,但是這并不是說這樣就是“同源”了,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-10-10
  • 通過Ajax兩種方式講解Struts2接收數(shù)組表單的方法

    通過Ajax兩種方式講解Struts2接收數(shù)組表單的方法

    使用struts2表單傳值,可以傳一個(gè)或者是作為一個(gè)對(duì)象的各個(gè)屬性傳,都非常靈活便捷。但是如果我們需要傳一個(gè)數(shù)組并希望struts正確接收,該怎么處理呢?接下來,通過本文給大家介紹通過Ajax兩種方式講解Struts2接收數(shù)組表單的方法,需要的朋友可以參考下
    2015-10-10
  • ajax數(shù)據(jù)返回進(jìn)行遍歷的實(shí)例講解

    ajax數(shù)據(jù)返回進(jìn)行遍歷的實(shí)例講解

    今天小編就為大家分享一篇ajax數(shù)據(jù)返回進(jìn)行遍歷的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • Ajax通訊原理XMLHttpRequest

    Ajax通訊原理XMLHttpRequest

    AJAX = 異步 JavaScript 和 XML。JavaScript不用說腳本語言,XML也不用說可擴(kuò)展標(biāo)記語言用于存放數(shù)據(jù)信息
    2011-12-12
  • Ajax?請(qǐng)求隊(duì)列解決方案并結(jié)合elementUi做全局加載狀態(tài)

    Ajax?請(qǐng)求隊(duì)列解決方案并結(jié)合elementUi做全局加載狀態(tài)

    這篇文章主要介紹了Ajax?請(qǐng)求隊(duì)列解決方案并結(jié)合elementUi做全局加載狀態(tài),使用 消息隊(duì)列 制作 請(qǐng)求防抖,防止重復(fù)請(qǐng)求印象服務(wù)器,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-10-10
  • 使用ajax實(shí)現(xiàn)無刷新改變頁面內(nèi)容和地址欄URL

    使用ajax實(shí)現(xiàn)無刷新改變頁面內(nèi)容和地址欄URL

    本文主要詳細(xì)介紹了使用ajax和window.history.pushState無刷新改變頁面內(nèi)容和地址欄URL的方法,需要的朋友可以參考下
    2015-03-03
  • 各種AJAX方法的使用比較詳解

    各種AJAX方法的使用比較詳解

    AJAX技術(shù)經(jīng)過這么多年的發(fā)展,出現(xiàn)了一些框架或類庫用于簡(jiǎn)化開發(fā)工作,不同的框架類庫的使用方法也各不相同。 現(xiàn)在,再回頭看看這些技術(shù),看看這些框架類庫,我們能感受到技術(shù)在不斷地發(fā)展,AJAX開發(fā)越來越容易了。
    2015-09-09
  • ajax中文亂碼的各種解決辦法總結(jié)

    ajax中文亂碼的各種解決辦法總結(jié)

    下面總結(jié)了在不同編程語言中出現(xiàn)ajax中文亂碼的各種解決辦法,下面有需要的朋友可參考一下
    2012-09-09
  • Ajax學(xué)習(xí)全套(最全最經(jīng)典)

    Ajax學(xué)習(xí)全套(最全最經(jīng)典)

    ajax是指一種創(chuàng)建交互式網(wǎng)頁應(yīng)用的網(wǎng)頁開發(fā)技術(shù)。這篇文章主要介紹了Ajax學(xué)習(xí)全套(最全最經(jīng)典)的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-08-08

最新評(píng)論

沈阳市| 册亨县| 武陟县| 沁源县| 汶川县| 洛南县| 海南省| 鹤岗市| 郧西县| 廉江市| 武夷山市| 宿松县| 洞口县| 延边| 县级市| 余江县| 贵港市| 抚远县| 包头市| 通州区| 托克逊县| 永康市| 准格尔旗| 稷山县| 太保市| 合作市| 宁城县| 雷波县| 巫溪县| 霍邱县| 大余县| 罗甸县| 桑植县| 恩施市| 永和县| 赤壁市| 新余市| 比如县| 长子县| 乌拉特后旗| 历史|