佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > Ajax中的循環(huán)方案

Ajax中的循環(huán)方案

熱門標(biāo)簽:Mysql連接數(shù)設(shè)置 阿里云 服務(wù)器配置 銀行業(yè)務(wù) 團(tuán)購網(wǎng)站 Linux服務(wù)器 科大訊飛語音識別系統(tǒng) 電子圍欄

Ajax 簡介

Ajax 由 HTML、JavaScript™ 技術(shù)、DHTML 和 DOM 組成,這一杰出的方法可以將笨拙的 Web 界面轉(zhuǎn)化成交互性的 Ajax 應(yīng)用程序。本文的作者是一位 Ajax 專家,他演示了這些技術(shù)如何協(xié)同工作 —— 從總體概述到細(xì)節(jié)的討論 —— 使高效的 Web 開發(fā)成為現(xiàn)實(shí)。他還揭開了 Ajax 核心概念的神秘面紗,包括 XMLHttpRequest 對象。

五年前,如果不知道 XML,您就是一只無人重視的丑小鴨。十八個(gè)月前,Ruby 成了關(guān)注的中心,不知道 Ruby 的程序員只能坐冷板凳了。今天,如果想跟上最新的技術(shù)時(shí)尚,那您的目標(biāo)就是 Ajax。

但是,Ajax 不僅僅 是一種時(shí)尚,它是一種構(gòu)建網(wǎng)站的強(qiáng)大方法,而且不像學(xué)習(xí)一種全新的語言那樣困難。

一、業(yè)務(wù)需求

在開發(fā)中,當(dāng)一個(gè)列表頁面加載完成后,我需要根據(jù)列表每一項(xiàng)的id去服務(wù)器端獲取對應(yīng)的數(shù)據(jù)然后再把獲取的數(shù)據(jù)賦給當(dāng)前id對應(yīng)的標(biāo)簽。

例如如下表格:

我有一系列的商品編號,我需要根據(jù)商品編號通過ajax到服務(wù)器獲取商品對應(yīng)的名稱,然后再用js更新界面(實(shí)際中的業(yè)務(wù)當(dāng)然不是獲取商品名稱這么簡單)

二、實(shí)現(xiàn)方案

2.1 錯(cuò)誤方案

一般情況下,我們會(huì)直接想到,直接寫個(gè)for循環(huán),在循環(huán)內(nèi)發(fā)起ajax請求獲取數(shù)據(jù),再把獲取的數(shù)據(jù)更新到對應(yīng)的id對應(yīng)的標(biāo)簽上,

如下:

我們以數(shù)組模擬一些列id:

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

循環(huán)的ajax請求方法:

function foreach_ajax() {
for (var i = 0; i  array.length; i++) {
$.get("/home/loop_ajax", { value: array[i] }, function (data) {
console.log(array[i]+","+data);
});
}
}

調(diào)用:

$(function () {
foreach_ajax(); 
});

測試結(jié)果如下:

我們可以看到,在循環(huán)的內(nèi)部我們根本取不到array[i]的值。

導(dǎo)致這種結(jié)果的原因是:ajax是異步執(zhí)行的,在循環(huán)結(jié)束的時(shí)候第一次ajax還沒有將服務(wù)器數(shù)據(jù)返回,而循環(huán)結(jié)束的時(shí)候for中的變量i已經(jīng)釋放了,所以array[i]=undefined

2.2 正確方案

正確的方式是以遞歸的方式循環(huán)ajax。

如下:

我們以數(shù)組模擬一些列id:

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

遞歸的ajax請求方法:

function Loop_ajax(index, array) {
if (index  array.length) { 
var value = array[index];
$.get("/home/loop_ajax", { value: value }, function (data) {
console.log(array[index] + "," + data);
if (index  array.length) {
Loop_ajax(index + 1, array); 
}
});
}
}

調(diào)用:

$(function () {
Loop_ajax(0, array);
});

測試結(jié)果如下:

以上所述是小編給大家介紹的Ajax中的循環(huán)方案,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

您可能感興趣的文章:
  • js+ajax處理java后臺(tái)返回的json對象循環(huán)創(chuàng)建到表格的方法
  • 詳解JavaScript for循環(huán)中發(fā)送AJAX請求問題
  • 如何將ajax請求返回的Json格式數(shù)據(jù)循環(huán)輸出成table形式
  • ajax 的post方法實(shí)例(帶循環(huán))

標(biāo)簽:棗莊 廣元 蚌埠 衢州 大理 江蘇 萍鄉(xiāng) 衡水

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Ajax中的循環(huán)方案》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    东至县| 偃师市| 繁峙县| 垦利县| 宜阳县| 武威市| 昭平县| 天祝| 石首市| 萨迦县| 游戏| 鄄城县| 时尚| 安徽省| 连山| 永春县| 四川省| 任丘市| 聊城市| 醴陵市| 萍乡市| 佛山市| 中山市| 连平县| 湛江市| 上饶县| 绥滨县| 东乡| 枝江市| 康定县| 依安县| 恩平市| 赤城县| 蒙自县| 金坛市| 商城县| 冕宁县| 上林县| 河西区| 龙岩市| 枣庄市|