一種有序處理多個Ajax數據源的方法與系統的制作方法
【技術領域】
[0001] 本發明涉及網頁開發技術領域,特別是涉及一種有序處理多個Ajax數據源的方 法及系統。
【背景技術】
[0002] Ajax 即 "Asynchronous Javascript And XML"(異步 JavaScript 和 XML),是指一 種創建交互式網頁應用的網頁開發技術。近年來,Ajax成了網頁開發中關注的主要技術熱 點,多種多樣的Ajax框架發展起來。由于其異步調用,前臺頁面可以在不刷新的情況下向 后臺發起請求并得到返回數據的特點,大大減少了用戶等待的時間,用戶體驗好,因而被廣 泛應用。
[0003] 但是當我們需要分別調用多個Ajax數據源取到不同的數據時,來由于其異步調 用的特點,Ajax會同時發起多個請求,然而返回數據的時間參差不齊,因此無法確定多個請 求返回數據的順序,從而使我們在統一處理返回的多個數據時無法根據實際邏輯順序,準 確處理。
【發明內容】
[0004] 有鑒于此,本發明的主要目的在于提供一種有序處理多個Ajax數據源的方法與 系統,可以按順序請求讀取到多個Ajax數據源中的數據。
[0005] 為實現上述目的,本發明提供了一種有序處理多個Ajax數據源的方法,包括:
[0006] 確定要調用的多個Ajax數據源及其調用順序;
[0007] 將每一個所述Ajax數據源分別封裝成對應的數據源函數,所述數據源函數定義 一個回調函數和一個全局變量,所述回調函數為所述數據源函數的參數,在數據源函數被 調用時,所述數據源函數對應的Ajax數據源中的數據復制到所述全局變量中;
[0008] 從所述調用順序的最后一個Ajax數據源開始,將每一個數據源函數作為其前一 個數據源函數的參數進行嵌套,得到一個嵌套函數;
[0009] 運行所述嵌套函數。
[0010] 優選地,運行所述嵌套函數包括:
[0011] 按所述調用順序依次調用每一個所述數據源函數,并將所述數據源函數對應的 Ajax數據源中的數據依次復制到所述全局變量中。
[0012] 本發明還提供了一種有序處理多個Ajax數據源的系統,包括確定模塊,函數封裝 模塊,嵌套模塊和運行模塊;
[0013] 所述確定模塊用于確定要調用的多個Ajax數據源及其調用順序;
[0014] 所述函數封裝模塊用于將每一個所述Ajax數據源分別封裝成對應的數據源函 數,所述數據源函數定義一個回調函數和一個全局變量,所述回調函數為所述數據源函數 的參數,在數據源函數被調用時,所述數據源函數對應的Ajax數據源中的數據復制到所述 全局變量中;
[0015] 所述嵌套模塊用于從所述調用順序的最后一個Ajax數據源開始,將每一個數據 源函數作為其前一個數據源函數的參數進行嵌套,得到一個嵌套函數;
[0016] 所述運行模塊用于運行所述嵌套函數。
[0017] 應用本發明提供的一種有序處理多個Ajax數據源的方法與系統,確定要調用的 多個Ajax數據源及其調用順序,將每一個所述Ajax數據源分別封裝成對應的數據源函數, 所述數據源函數定義一個回調函數和一個全局變量,所述回調函數為所述數據源函數的參 數,在數據源函數被調用時,所述數據源函數對應的Ajax數據源中的數據復制到所述全局 變量中,從所述調用順序的最后一個Ajax數據源開始,將每一個數據源函數作為其前一個 數據源函數的參數進行嵌套,得到一個嵌套函數,并運行所述嵌套函數。運行嵌套函數時, 各數據源函數將按順序進行調用,并在調用時將其對應的Ajax數據源中的數據復制到全 局變量中,最后在全局變量中可獲得有調用順序的各Ajax數據源的數據,可以按順序請求 讀取到多個Ajax數據源中的數據。
【附圖說明】
[0018] 為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現 有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本 發明的實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據 提供的附圖獲得其他的附圖。
[0019] 圖1為本發明一種有序處理多個Ajax數據源的方法實施例一的流程圖;
[0020] 圖2為本發明一種有序處理多個Ajax數據源的方法實施例一的調用邏輯圖;
[0021] 圖3為本發明一種有序處理多個Ajax數據源的系統實施例二的結構示意圖。
【具體實施方式】
[0022] 下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完 整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于 本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他 實施例,都屬于本發明保護的范圍。
[0023] 實施例一:
[0024] 本發明提供了一種有序處理多個Ajax數據源的方法,圖1示出了本發明有序處理 多個Ajax數據源的方法的實施例一流程圖,包括:
[0025] 步驟SlOl :確定要調用的多個Ajax數據源及其調用順序;
[0026] 有N個Ajax數據源要請求讀取到,確定其順序為Ajaxl,Ajax2……AjaxN。
[0027] 步驟S102:將每一個所述Ajax數據源分別封裝成對應的數據源函數,所述數據源 函數定義一個回調函數和一個全局變量,所述回調函數為所述數據源函數的參數,在數據 源函數被調用時,所述數據源函數對應的Ajax數據源中的數據復制到所述全局變量中;
[0028] 將Ajaxl,Ajax2......AjaxN分別封裝為對應的數據源函數ajaxFunctionl, ajaxFunction2,......ajaxFunctionN,設定一個回調函數callback,將回調函數作為參數, 定義一個全局變量dataN,在調用數據源函數時,把對應的Ajax數據源中的數據復制到全 局變量dataN中,優選的實現代碼如: UiN 丄 Λ J ^ 〇/ ο
[0031] 步驟S103:從所述調用順序的最后一個Ajax數據源開始,將每一個數據源函數作 為其前一個數據源函數的參數進行嵌套,得到一個嵌套函數;
[0032] 初次調用時,調用ajaxFunctionl,同時將ajaxFunction2作為參數傳入 ajaxFunctionl,再將ajaxFunction3作為參數傳入ajaxFunction2,以此類推,優選的實現 代碼如:
[0033] CN 105159669 A VL 4/b 貝
[0034] 步驟S104 :運行所述嵌套函數。
[0035] 運行所述嵌套函數,按嵌套關系依次調用各數據源函數,在最終的回調函數 callback中統一按照相關邏輯處理所有數據源返回的數據,即按所述調用順序依次調用每 一個所