簡體   English   中英

Mootools XHR請求:同步和/或鏈接?

[英]Mootools XHR request: synchronous and/or chained?

我有幾個XHR請求,這些請求由Mootools Request類處理。 此類提供一些選項來適當地計時請求。 我在做什么:

  1. XHR:過帳表格數據
  2. XHR:刷新主窗格
  3. XHR:刷新子窗格

當然,請求2和3必須等待1完成。 因此,這些是在onComplete事件處理程序中觸發的。 但是,Request類提供了用於處理多個XHR請求的選項。 我的問題是關於這兩個:

  1. 可以將選項link設置為chain ,以“鏈接”它們,或者按照Moo docs的說明:

    在請求運行期間進行的任何開始調用都將被鏈接起來,並且將在當前請求完成后立即進行。

  2. 可以將選項async設置為false ,以防止以后執行請求。 根據Moo文​​檔:

    如果設置為false,則請求將是同步的,並在請求期間凍結瀏覽器。

除了瀏覽器凍結部分之外,到底有什么區別? 我應該使用哪個請求號。 1? 同步執行是否更好,所以我確定在此期間沒有其他執行程序嗎? 以及同時使用兩者,這有意義嗎?

好。 link:chain和async:false之間的區別很簡單。

第一個公理-您正在重用您的請求實例,而不是創建一個新的實例。 即使您不是,它也可以與異步一起使用。 例如,如果您有async: false ,則此代碼:

new Request({async:false}).send();

// this one below will not run until the UI thread has finished
new Request({async:false}).send();

// nor will this
somefunc();

如果您使用鏈條:

var req = new Request({link: "chain"});

req.send();
// this won't run until the previous request has completed:
req.send();
// this will run independently of the above and may finish first as
// they are not synchronous and this is a brand new instance.
new Request().send();

鏈接的請求是異步的,當一個請求結束時會觸發第二個請求,依此類推,因此您可以擁有多個請求,而不會同時阻塞瀏覽器和所有請求。

鏈接的請求不會凍結您的瀏覽器。

暫無
暫無

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

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