迴圈ajax請求問題

2022-03-14 12:42:50 字數 744 閱讀 5218

專案開發過程碰到過這種需求:需要迴圈傳送ajax請求,請求引數和迴圈索引有關。

第一次實現的時候用了類似下面的方法,結果發現傳送到後端的引數資料都是最後一次迴圈的索引

1

for(var i=0; i<10; i++),function

(){});

3 }

這是js沒有塊級作用域引起的,for迴圈中**塊使用的i實際上是同乙個,都是最後一次的索引值。

js存在函式作用域,所以可以利用js閉包特性,讓for迴圈中每次請求使用索引值不同。實現**:

1

for(var i=0; i<10; i++),function

(){});

4})(i);

5 }

這是因為在函式作用域中,內部函式可以訪問定義它們的外部函式的引數和變數,並且內部函式比外部函式有更長的生命週期;上面的例子中,$.get()屬於內部函式,function(seq){}屬於外部函式,內部函式可以直接使用外部函式的引數seq。由於外部函式是立即執行函式,外部函式執行後,會為內部函式建立乙個上下文環境,外部函式的引數seq也屬於這個上下文環境中的一部分,這個上下文環境存在於內部函式的生命週期中。基於這樣的事實,在一次迴圈中,外部函式執行結束,外部函式的生命週期結束,但是外部函式為內部函式建立的上下文環境仍然有效。因為傳參不同,外部函式每次執行建立的上下文環境都不同。對內部函式而言,執行使用的引數seq存在上下文環境中,對於不同的上下文環境,使用的seq值不同。個人理解

ajax請求掛起 Ajax請求內部迴圈掛起瀏覽器

我想從擁有大量資料的伺服器得到乙個結果。因此,伺服器在多個頁面中傳送資料。所以我想讓所有這些在資料表中顯示出來。所以我在迴圈內部使用ajax請求,因為我想從許多頁面獲取資訊。我為page變數新增 1,這樣迴圈將獲取所有頁面的所有結果,直到響應的no of elements為0。但是問題是瀏覽器在執行...

ajax請求問題。

臨近畢業了還要幹活。稍微有點悲催。今天寫 遇到了乙個問題。用for迴圈ajax請求後台action。在firebug裡看到的請求引數是正確的。兩個請求的引數乙個是0,乙個是1。但是執行action的時候,執行的兩次卻都是執行的同乙個引數。比如都是1或者都是0。這個問題很奇怪。到目前還沒解決。在aja...

ajax請求快取問題

問題 ie中如果xmlhttprequest提交的url與歷史一樣則使用快取,根本不向伺服器端提交。因此無法取到剛提交的資料。解決方法 為了讓提交每次都向伺服器端傳送請求,而不是使用快取。在url中加時間戳 var url baseurl tamp new date gettime 或者加隨機數 v...