首頁 web前端 js教程 如何解決Ajax的content-download時間過慢問題(詳細分析)

如何解決Ajax的content-download時間過慢問題(詳細分析)

May 21, 2018 pm 03:41 PM
ajax 時間

這篇文章主要介紹了Ajax的content-download時間過慢問題的解決方法及思考過程,本文透過事件背景,過程分析,給大家介紹的非常詳細,需要的朋友參考下吧

前言:

今天這篇文章跟大家介紹關於ajax的content-download時間過慢問題的解決與思考。

事件背景:

開發人員回饋給我一個bug,ajax對應速度很慢,經過定位,速度慢的原因在於,content-download時間過長,在chrome中有2s 的延遲,後來證實在我們的手機客戶端裡也有這一延遲。截圖如下:

 

流程分析:

1.定位原因:

首先,看到這一延遲,第一個反應這不是前端bug,並回饋給後端同學。 but,透過後端定位發現介面回饋時間非常迅速,翻閱國外文獻事實證明,這是由於瀏覽器事件不標準所造成的bug。

2.bug分析:

透過對開發同學的溝通,我發現bug有兩個特點,第一,這一延遲只存在需要上拉加載而引起ajax請求的情況下,且統一環境和瀏覽器下延遲時間相似,都在2-3s之間。

第二,部分上拉載入的元件雖然也觸發ajax,但並未有延遲。

於是開始了前端,原因的定位,首先找想通點:由於我們的專案架構設計,全部的上拉加載都是由一個基礎組件pagger 完成的,其部分程式碼如圖所示,原理是透過瀏覽器的scroll事件和resize事件不停的去檢測元件是否在可視區域中,如果是則觸發hasMore函數。

 

其次,查看出現延遲問題的商業頁面和不出現延遲的商業頁面對此元件的呼叫差異。

透過對比,也沒有發現兩個元件有何不同。 (故這一奧秘,有興趣的同學可以聯繫我一起討論。。。。我可以把源碼發給你)

經過多次的重現問題,明顯看到在pc的chrome,使用touch模式延遲偶爾消失,而使用mousewheel延遲又出現。故將問題定位到mousewheel事件 和其相近對應的 scroll事件。

bug解決:

結合上訴原因並透過查看的幾個帖子討論,得出如下結論:

# 1.chrome瀏覽器的mousewheel事件是造成這延遲的原因(mousewheel事件不是標準事件,不推薦大家使用),當然!代碼中我並沒有使用mousewheel事件,但是使用scroll事件就可能會引起mousewheel事件的衝突,而在我們特質的手機客戶端中的webview不幸的也命中了這一缺陷。

2.想要解決這個問題,可以嘗試監聽這一事件(如果瀏覽器沒有這一事件,也不會響應這一監聽,沒有衝突),並在事件觸發的時候,取消其所有預設行為:

故透過監聽其事件模型的deltaY(滑鼠垂直滾動量)當其有垂直位移的時候,觸發preventDefault,故代碼如下:

 window.addEventListener("mousewheel", (e) => {
   if (e.deltaY === 1) {
     e.preventDefault();
   }
 })
登入後複製

將這段程式碼加入前端基礎庫的頁面初始化程式碼中,神奇的發現相關的頁面content-download延遲問題都得到了解決。

總結:

相容性問題的本質:   

webkit架構中,有些模組在瀏覽器中是普遍不共享的,有一些模組在瀏覽器中是某些特性不共享的,而且可以透過不同的編譯配置來改變它們的行為。所以,很多使用webkit的瀏覽器可能會表現出不同的行為。

上面是我整理給大家的,希望今後對大家有幫助。

相關文章:

php ajax實作發起流程與稽核流程的方法 

##js封裝ajax功能函數實作步驟詳解

PHP Mysql Ajax實作淘寶客服阿里旺旺聊天功能(前台頁面)的方法

以上是如何解決Ajax的content-download時間過慢問題(詳細分析)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

抖音10級燈牌多少錢? 10級粉絲燈牌需要幾天? 抖音10級燈牌多少錢? 10級粉絲燈牌需要幾天? Mar 11, 2024 pm 05:37 PM

在抖音平台上,許多用戶都渴望獲得等級認證,其中10級燈牌更是展示用戶在抖音上的影響力和認可度。本文將深入探討抖音10級燈牌的價格以及達到此等級所需的時間,以幫助使用者更了解此過程。一、抖音10級燈牌多少錢?抖音10級燈牌的價格會受市場波動和供需情況的影響而有所差異,一般價格在幾千元到萬元之間。這個價格主要包括燈牌本身的成本和可能的服務費用。用戶可透過抖音官方管道或第三方服務機構購買10級燈牌,但在購買時要留意選擇合法管道,以免遭遇虛假或詐欺交易。二、10級粉絲燈牌要幾天?達到10級燈牌

艾爾登法環通關需要多久 艾爾登法環通關需要多久 Mar 11, 2024 pm 12:50 PM

玩家在艾爾登法環中進行遊戲時可以體驗遊戲主線劇情,以及收集遊戲成就,有很多玩家不知道艾爾登法環通關需要多久,玩家的通關流程在30個小時。艾爾登法環通關需要多久答:30小時。 1、這個30小時的通關時長指的雖然不是高手般的速通,但也省略了許多的流程。 2.如果你想獲得更好的遊戲體驗或是體驗完整的劇情,那麼時長上肯定要花費更多的時間。 3.如果玩家是全收集大約要100-120小時。 4.如果是只走主線刷BOSS大約:50-60小時。 5.如果是想全部體驗:150小時打底。

解決jQuery AJAX請求遇到403錯誤的方法 解決jQuery AJAX請求遇到403錯誤的方法 Feb 20, 2024 am 10:07 AM

標題:解決jQueryAJAX請求出現403錯誤的方法及程式碼範例403錯誤是指伺服器禁止存取資源的請求,通常會導致出現這個錯誤的原因是請求缺少權限或被伺服器拒絕。在進行jQueryAJAX請求時,有時會遇到這種情況,本文將介紹如何解決這個問題,並提供程式碼範例。解決方法:檢查權限:首先要確保請求的URL位址是正確的,同時驗證是否有足夠的權限來存取該資

小紅書發佈作品時間怎麼設定?發布作品時間準確嗎? 小紅書發佈作品時間怎麼設定?發布作品時間準確嗎? Mar 24, 2024 pm 01:31 PM

小紅書,一個充滿生活氣息與知識分享的平台,讓越來越多的創作者在這裡暢所欲言。要想在小紅書上獲得更多的關注和點贊,除了內容品質之外,發布作品的時間也是至關重要的。那麼,如何設定小紅書發布作品的時間呢?一、小紅書發布作品時間怎麼設定? 1.了解用戶活躍時間首先,需要先明確小紅書用戶的活躍時間。通常來說,晚上8點到10點以及週末下午是用戶活躍度較高的時段。然而,這個時段也會受到受眾群體和地理等因素的影響而有所不同。因此,為了更能掌握用戶活躍時段,建議對不同族群的行為習慣進行更詳細的分析。透過了解用戶的活

PHP 與 Ajax:建立一個自動完成建議引擎 PHP 與 Ajax:建立一個自動完成建議引擎 Jun 02, 2024 pm 08:39 PM

使用PHP和Ajax建置自動完成建議引擎:伺服器端腳本:處理Ajax請求並傳回建議(autocomplete.php)。客戶端腳本:發送Ajax請求並顯示建議(autocomplete.js)。實戰案例:在HTML頁面中包含腳本並指定search-input元素識別碼。

解決jQuery AJAX請求403錯誤的方法 解決jQuery AJAX請求403錯誤的方法 Feb 19, 2024 pm 05:55 PM

jQuery是一個受歡迎的JavaScript函式庫,用來簡化客戶端端的開發。而AJAX則是在不重新載入整個網頁的情況下,透過發送非同步請求和與伺服器互動的技術。然而在使用jQuery進行AJAX請求時,有時會遇到403錯誤。 403錯誤通常是伺服器禁止存取的錯誤,可能是由於安全性原則或權限問題導致的。在本文中,我們將討論如何解決jQueryAJAX請求遭遇403錯誤

Linux 檔案時間查看技巧詳解 Linux 檔案時間查看技巧詳解 Feb 21, 2024 pm 01:15 PM

Linux檔案時間檢視技巧詳解在Linux系統中,檔案的時間資訊對於檔案管理和追蹤變更非常重要。 Linux系統透過三種主要時間屬性來記錄檔案的變更訊息,分別是存取時間(atime)、修改時間(mtime)和變更時間(ctime)。本文將詳細介紹如何查看和管理這些文件時間信息,並提供具體的程式碼範例。 1.查看文件時間資訊透過使用ls指令結合參數-l可以列出文

如何解決jQuery AJAX報錯403的問題? 如何解決jQuery AJAX報錯403的問題? Feb 23, 2024 pm 04:27 PM

如何解決jQueryAJAX報錯403的問題?在開發網頁應用程式時,經常會使用jQuery來發送非同步請求。然而,有時在使用jQueryAJAX時可能會遇到錯誤代碼403,表示伺服器禁止存取。這種情況通常是由伺服器端的安全性設定所導致的,但可以透過一些方法來解決這個問題。本文將介紹如何解決jQueryAJAX報錯403的問題,並提供具體的程式碼範例。一、使

See all articles