Ajax中的迴圈方案

2022-09-21 09:33:09 字數 1307 閱讀 5536

ajax 簡介

ajax 由 html、j**ascript™ 技術、dhtml 和 dom 組成,這一傑出的方法可以將笨拙的 web 介面轉化成互動性的 ajax 應用程式。本文的作者是一位 ajax 專家,他演示了這些技術如何協同工作 —— 從總體概述到細節的討論 —— 使高效的 web 開發成為現實。他還揭開了 ajax 核心概念的神秘面紗,包括 xmlhttprequest 物件。

五年前,如果不知道 xml,您就是乙隻無人重視的醜小鴨。十八個月前,ruby 成了關注的中心,不知道 ruby 的程式設計師只能坐冷板凳了。今天,如果想跟上最新的技術時尚,那您的目標就是 ajax。

但是,ajax 不僅僅 是一種時尚,它是一種構建**的強大方法,而且不像學習一種全新的語言那樣困難。

一、業務需求

在開發中,當乙個列表頁面載入完成後,我需要根據列表每一項的id去伺服器端獲取對應的資料然後再把獲取的資料賦給當前id對應的標籤。

例如如下www.cppcns.com**:

我有一系列的商品編號,我需要根據商品編號通過ajax到伺服器獲取商品對應的名稱,然後再用js更新介面(實際中的業務當然不是獲取商品名稱這麼簡單)

二、實現方案

2.1 錯誤方案

一般情況下,我們會直接想到,直接寫個for迴圈,在迴圈內發起ajax請求獲取資料,再把獲取的資料更新到對應的id對應的標籤上,

如下:我們以陣列模擬一些列id:

var array = [1, 3, 2, 5, 3];

迴圈的ajax請求方法:

function foreach_ajax() , function (data) );

}}呼叫:

$(function () );

測試結果如下:

我們可以看到,在迴圈的內部我們根本取不到array[i]的值。

導致這種結果的原因是:ajax是非同步執行的,在迴圈結束的時候第一次ajax還沒有將伺服器資料返回,而迴圈結束的時候for中的變數i已經釋放了,所以array[i]=undefined

2.2 正確方案

正確的方式是以遞迴的方式迴圈ajax。

如下:我們以陣列模擬一些列id:

var array = [1, 3, 2, 5, 3];

遞迴的ajax請求方法:

function loop_ajax(index, array) , function (data)

});}

}調pigxzqbf用:

$(function () );

測試結果如下:

本文標題: ajax中的迴圈方案

本文位址: /wangluo/ajax/167431.html

迴圈ajax請求問題

專案開發過程碰到過這種需求 需要迴圈傳送ajax請求,請求引數和迴圈索引有關。第一次實現的時候用了類似下面的方法,結果發現傳送到後端的引數資料都是最後一次迴圈的索引 1 for var i 0 i 10 i function 3 這是js沒有塊級作用域引起的,for迴圈中 塊使用的i實際上是同乙個,...

過多的ajax請求處理方案

1,定乙個全域性變數來儲存當前所有要執行的ajax請求,作為乙個佇列,只不過這個佇列有且只有乙個存在並執行。2,每次要新建並開始乙個請求是,遍歷這個請求陣列,把之前已經存在的全部停止,把新的請求放進去。這樣能保證不會有過多的ajax請求被發起。var yourquerycontainer new a...

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

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