作者void0 (______)
看板Ajax
標題[問題] ajax頻繁取得資料後 網頁js執行變很慢
時間Fri Aug 30 20:06:37 2019
我大概是這樣寫
var data1 = {};
var data2 = {};
ajax function(){
data1 = response.table1
data2 = response.table2
}
然後網頁有mouse座標互動的event
會去讀取data1,2 然後顯示資訊在div上
在頻繁執行ajax function()後
互動的event會越來越慢...
像這種要怎麼處理比較好呢?
thx
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.230.34.172 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Ajax/M.1567166799.A.1D5.html
1F:→ freeccc: mouse event 的 callback 有做什麼複雜運算的事嗎 08/30 20:18
會用loop去讀取data 找到資料後就break
速度一直都很ok 但最近新增了頻繁取得資料的功能後
就會漸漸變慢 @@"
※ 編輯: void0 (36.230.34.172 臺灣), 08/30/2019 20:25:09
2F:→ Hevak: 應該跟 ajax 沒關係,但沒看到你怎麼顯示資料的 code 很難 08/30 20:26
3F:→ Hevak: 給建議,通常是卡在你畫面上顯示資料的方式不對導致物件太 08/30 20:27
4F:→ Hevak: 多影響效能之類的 08/30 20:27
顯示資料的code如上所述 就是loop data,找到資料後更新div html
比較運算的部分是要去計算轉換網頁的xy跟data內的xy對應,但也不是甚麼複雜運算
data的內容都是少量增加的 沒有一次增加到無法負荷
dom物件並沒有增加 一直都是更新同一個div
變慢的部分是該div會跟著滑鼠游標跑 會變得更不上
所以才在想為何更新資料十多次以上後 會變慢?
5F:→ max241: 我會用Rx.js並優化流程(cache之類的) 08/30 23:39
※ 編輯: void0 (36.230.34.172 臺灣), 08/31/2019 20:47:14
6F:→ freeccc: 沒 code 的話只能隔空抓藥囉 08/31 21:48
7F:推 jack82822005: 先問個為什麼要loop好了 09/01 00:08
8F:推 CloudyWing: ajax能同時執行的數量有限,超過就要排隊 09/01 22:48
9F:推 ian90911: 沒code看 猜有重複註冊問題 09/02 15:59
10F:→ shadowjohn: 取到資料用完主動清空看看~ 09/02 17:59
11F:推 odbc: 這題有興趣, 但沒 code.... =_= 10/07 11:10
12F:→ odbc: 你高頻是多高頻....AJAX 收到後有做什麼處理 10/07 11:11
13F:→ odbc: 還是你有 ajax memory leak ? 10/07 11:12
14F:→ wotupset: 大概是loop沒寫好 網頁元素變多就會頓了 11/01 21:06