簡體   English   中英

如何在JavaScript中刷新屏幕數據而不會使頁面變慢?

[英]How to refresh screen data in JavaScript without making the page slow?

我有一個關於代碼而不是用戶體驗的問題,我有JS:

$(document).on( "click", "input:radio,input:checkbox", function() {
        getContent($(this).parent(),0);
    });

上面的JS從單選和復選框獲取內容,並刷新頁面以顯示依賴關系。 例如,如果我選擇“是”,並且依賴項是“是”,則顯示文本框,以上方法有效!

我想知道的是,是否有更好的方法來做同樣的事情,但是以更友好的方式做,這有時會使頁面變慢。 尤其是如果我一口氣做很多的滴答/檢查,我會錯過一些,因為父母會刷新!

如果必須將服務器連接到getContent() ,它將自動變慢。

但是,如果只發送一次所有元素,而不是每次進行更改都需要訪問服務器,則可以節省很多。

但是,如果不能創建一個超大頁面,則需要保留getContent()函數,但是有一種可能的解決方案,以防您尚未實現,即緩存所有查詢的數據。早。

因此,您可以有一個對象(一個地圖),該對象的鍵定義了您感興趣的數據。如果定義了鍵,則該數據已經可用,您可以直接從緩存中返回並使用該數據。 否則,您必須打服務器。

您提到的一件事是,在來回“打勾”時很慢,一次不要向服務器發送一個以上的請求(如果服務器永不答復,則超時)。 所以這里的過程是:

  1. 需要數據“ xyz”
  2. 該數據是否已經緩存? 如果是,則跳過步驟(3和4)
  3. 是否正在處理請求? 如果是,則將數據壓入請求堆棧並返回
  4. 向服務器發送請求,服務器將阻止任何其他請求,直到收到“ xyz”的答案為止
  5. 接收答案並將數據緩存在對象(映射)中,然后釋放請求隊列
  6. 根據需要使用數據
  7. 我檢查請求隊列,如果不為空,則彈出下一個請求並從(2)開始處理

該請求進程預計將在計時器上運行,因為(1)它可能會超時,並且(2)它需要在后台運行(不是GUI搶先)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM