<dfn id="w48us"></dfn><ul id="w48us"></ul>
  • <ul id="w48us"></ul>
  • <del id="w48us"></del>
    <ul id="w48us"></ul>
  • 解讀Ajax中的循環(huán)方案

    時間:2024-05-13 09:40:45 AJAX 我要投稿
    • 相關(guān)推薦

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

      Ajax 簡介

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

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

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

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

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

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

      例如如下表格:

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

      二、實現(xiàn)方案

      2.1 錯誤方案

      一般情況下,我們會直接想到,直接寫個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é)束的時候第一次ajax還沒有將服務(wù)器數(shù)據(jù)返回,而循環(huán)結(jié)束的時候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)方案】相關(guān)文章:

    解讀Rnd 函數(shù)中的asp08-03

    javascript中for/in循環(huán)以及常見的使用技巧06-24

    Linux中的more命令解讀202405-06

    AJAX的工作原理及優(yōu)缺點08-16

    解讀企業(yè)融資決策中的納稅籌劃09-30

    使用ajax操作JavaScript對象的方法09-28

    關(guān)于Ajax技術(shù)原理的幾點總結(jié)01-10

    基于ajax實現(xiàn)無刷新分頁的方法10-15

    解析ajax請求post和get的區(qū)別10-01

    如何利用ajax獲取博文列表08-03

    主站蜘蛛池模板: 亚洲AV日韩精品一区二区三区| 国产精品国产亚洲精品看不卡| 无码日韩人妻精品久久蜜桃| 99久久国产综合精品五月天喷水| 亚洲一日韩欧美中文字幕欧美日韩在线精品一区二 | 亚洲精品老司机在线观看| 无码精品一区二区三区免费视频| 久久99精品国产麻豆| 亚洲综合欧美精品一区二区| 久久这里只有精品视频99| 国产成人精品久久综合| 国内精品免费视频精选在线观看 | 亚洲精品无码MV在线观看| 久久国产精品偷99| 成人精品一区二区三区电影黑人| 97久久久精品综合88久久| 三上悠亚久久精品| 自拍偷自拍亚洲精品情侣| 亚洲国产精品丝袜在线观看| 久久夜色撩人精品国产小说| 久草热久草热线频97精品| 国产精品无码久久四虎| 国产成人久久精品二区三区| 99九九精品免费视频观看| 亚洲国产成人久久精品影视| 久久精品国产亚洲综合色| 国产精品自拍一区| 国产精品久久久久无码av| 国产精品美女久久久久久2018| 久久久久久亚洲精品成人| 欧美精品videosse精子| 日韩精品无码熟人妻视频| 无码人妻精品中文字幕| 日韩精品无码一区二区三区| 精品永久久福利一区二区| 国产精品成人观看视频国产奇米| 99久久国语露脸精品国产| 国产精品久久免费| 久久精品国产一区二区三区日韩| 91精品国产91久久久久久青草 | 国产精品视频一区二区三区无码|