欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于執(zhí)行網(wǎng)頁(yè)任務(wù)的方法和裝置的制造方法

文檔序號(hào):9349847閱讀:263來(lái)源:國(guó)知局
用于執(zhí)行網(wǎng)頁(yè)任務(wù)的方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及網(wǎng)絡(luò)技術(shù),并具體地涉及一種用于執(zhí)行網(wǎng)頁(yè)任務(wù)的方法和裝置。
【背景技術(shù)】
[0002]作為Web2.0的核心技術(shù),Ajax通過(guò)異步方式,在不刷新頁(yè)面的情況下從服務(wù)器獲取數(shù)據(jù)。Ajax不阻塞用戶請(qǐng)求,提高了頁(yè)面響應(yīng)速度,降低了服務(wù)器的壓力,給Web系統(tǒng)用戶體驗(yàn)帶來(lái)了質(zhì)的飛越。
[0003]但是Ajax的大量使用,使前端頁(yè)面代碼充斥著大量的異步事件,它們可能在任何時(shí)刻以隨機(jī)順序被觸發(fā)。當(dāng)業(yè)務(wù)邏輯需要多個(gè)操作保持特定順序,而這些操作又依賴多個(gè)異步請(qǐng)求時(shí),問(wèn)題就變得非常復(fù)雜。
[0004]在處理異步順序問(wèn)題時(shí),現(xiàn)有的方式采用Ajax回調(diào)方法,即當(dāng)Ajax請(qǐng)求成功或者失敗后,在回調(diào)函數(shù)中處理下一步的操作。但是,當(dāng)多個(gè)異步操作存在依賴關(guān)系時(shí)或一個(gè)操作依賴多個(gè)異步操作時(shí),通過(guò)回調(diào)方式很難進(jìn)行處理。這不僅給開(kāi)發(fā)人員帶來(lái)挑戰(zhàn),而且還具有以下缺點(diǎn):
[0005]1.代碼結(jié)構(gòu)復(fù)雜,難以理解和維護(hù),效率低下。如果有復(fù)雜的依賴關(guān)系,例如:Ajax任務(wù)C同時(shí)依賴Ajax任務(wù)A和ajax任務(wù)B,那么只能先執(zhí)行Ajax任務(wù)A,再在A的回調(diào)函數(shù)中執(zhí)行任務(wù)B,然后在B的回調(diào)函數(shù)中執(zhí)行任務(wù)C。這樣不僅程序復(fù)雜,而且A和B需要順序執(zhí)行,沒(méi)有并發(fā)執(zhí)行,效率低下。
[0006]2.異步調(diào)用順序難以保證,容易引發(fā)系統(tǒng)bug,而且bug具有隨機(jī)性,難以發(fā)現(xiàn)。
[0007]3.同步調(diào)用會(huì)鎖住頁(yè)面,影響用戶體驗(yàn),效率低下。
[0008]4.依賴關(guān)系不能實(shí)現(xiàn)定制。當(dāng)前端業(yè)務(wù)需要靈活配置的異步流程時(shí),如使用Ajax回調(diào)方法處理異步請(qǐng)求順序問(wèn)題,需要復(fù)雜的控制邏輯。流程無(wú)法修改,更不能實(shí)現(xiàn)靈活配置。

【發(fā)明內(nèi)容】

[0009]為了解決以上存在的至少一個(gè)問(wèn)題,本發(fā)明提出了一種用于執(zhí)行網(wǎng)頁(yè)任務(wù)的方法和裝置。
[0010]根據(jù)本發(fā)明的一個(gè)方面,提出了一種用于執(zhí)行網(wǎng)頁(yè)任務(wù)的方法,包括:a)確定任務(wù)隊(duì)列中的各個(gè)任務(wù)的任務(wù)關(guān)系山)根據(jù)所述任務(wù)關(guān)系確定當(dāng)前狀態(tài)下可執(zhí)行的任務(wù),其中只有任務(wù)的所有前驅(qū)任務(wù)都已被執(zhí)行時(shí),所述任務(wù)才被確定為可執(zhí)行的任務(wù);以及c)為每個(gè)可執(zhí)行的任務(wù)分別創(chuàng)建任務(wù)代理,并通過(guò)所創(chuàng)建的任務(wù)代理分別執(zhí)行相應(yīng)的可執(zhí)行的任務(wù)。
[0011]優(yōu)選地,所述方法在步驟c之后還包括:d)當(dāng)任何一個(gè)任務(wù)執(zhí)行完畢后,回到步驟
bo
[0012]優(yōu)選地,所述方法在步驟a之前還包括:e)創(chuàng)建任務(wù)隊(duì)列或更新已有的任務(wù)隊(duì)列。
[0013]優(yōu)選地,為所述任務(wù)隊(duì)列中的每個(gè)任務(wù)指定以下各項(xiàng)中的至少一個(gè):任務(wù)類型、前驅(qū)任務(wù)列表、后繼任務(wù)列表以及執(zhí)行條件。
[0014]優(yōu)選地,所述任務(wù)類型包括:同步任務(wù)和/或異步任務(wù)。
[0015]優(yōu)選地,所述任務(wù)關(guān)系包括:依賴關(guān)系和/或執(zhí)行條件。
[0016]優(yōu)選地,所述依賴關(guān)系是基于前驅(qū)任務(wù)列表和/或后繼任務(wù)列表確定的。
[0017]優(yōu)選地,步驟b包括:如果存在針對(duì)任務(wù)的執(zhí)行條件,則只有當(dāng)所述執(zhí)行條件被滿足時(shí),所述任務(wù)才被確定為可執(zhí)行的任務(wù)。
[0018]根據(jù)本發(fā)明的另一方面,還提出了一種用于執(zhí)行網(wǎng)頁(yè)任務(wù)的設(shè)備,包括:關(guān)系確定裝置,用于確定任務(wù)隊(duì)列中的各個(gè)任務(wù)的任務(wù)關(guān)系;可執(zhí)行任務(wù)確定裝置,用于根據(jù)所述任務(wù)關(guān)系確定當(dāng)前狀態(tài)下可執(zhí)行的任務(wù),其中只有任務(wù)的所有前驅(qū)任務(wù)都已被執(zhí)行時(shí),所述任務(wù)才被確定為可執(zhí)行的任務(wù);以及執(zhí)行裝置,用于為每個(gè)可執(zhí)行的任務(wù)分別創(chuàng)建任務(wù)代理,并通過(guò)所創(chuàng)建的任務(wù)代理分別執(zhí)行相應(yīng)的可執(zhí)行的任務(wù)。
[0019]通過(guò)以上所提出的方法和設(shè)備,不僅解決了包含Ajax異步調(diào)用的多個(gè)互相依賴的功能模塊的順序問(wèn)題,使業(yè)務(wù)邏輯代碼與異步順序控制解耦,而且還使頁(yè)面既具有Ajax異步性的便利,并同時(shí)能根據(jù)用戶指定的順序依次執(zhí)行。所提出的方案支持對(duì)多個(gè)相互依賴的異步流程的靈活定制。
【附圖說(shuō)明】
[0020]圖1是根據(jù)本發(fā)明的一種實(shí)施例的執(zhí)行網(wǎng)頁(yè)任務(wù)的方法的流程圖;
[0021]圖2是根據(jù)本發(fā)明的一種實(shí)施例的執(zhí)行網(wǎng)頁(yè)任務(wù)的設(shè)備的結(jié)構(gòu)框圖;
[0022]圖3是不例性的任務(wù)依賴關(guān)系圖;
[0023]圖4是根據(jù)本發(fā)明的一種具體實(shí)施例的詳細(xì)流程。
【具體實(shí)施方式】
[0024]以下結(jié)合附圖對(duì)本發(fā)明的【具體實(shí)施方式】進(jìn)行具體說(shuō)明。
[0025]首先參見(jiàn)圖1,圖1是根據(jù)本發(fā)明的一種實(shí)施例的執(zhí)行網(wǎng)頁(yè)任務(wù)的方法100的流程圖。如圖所示,所示方法100起始于步驟S110,確定任務(wù)隊(duì)列中的各個(gè)任務(wù)的任務(wù)關(guān)系。接著,在步驟S120中,根據(jù)所述任務(wù)關(guān)系確定當(dāng)前狀態(tài)下可執(zhí)行的任務(wù),其中只有任務(wù)的所有前驅(qū)任務(wù)都已被執(zhí)行時(shí),所述任務(wù)才被確定為可執(zhí)行的任務(wù)。最后,在步驟S130中,為每個(gè)可執(zhí)行的任務(wù)分別創(chuàng)建任務(wù)代理,并通過(guò)所創(chuàng)建的任務(wù)代理分別執(zhí)行相應(yīng)的可執(zhí)行的任務(wù)。
[0026]在步驟SllO中,首先確定任務(wù)隊(duì)列中的各個(gè)任務(wù)的任務(wù)關(guān)系。
[0027]其中,任務(wù)是對(duì)應(yīng)于需要同步的操作的代碼序列的組合。任務(wù)隊(duì)列是用戶需要執(zhí)行的多個(gè)相互依賴的任務(wù)的集合。為了實(shí)現(xiàn)任務(wù)的自動(dòng)調(diào)度,可以把多個(gè)任務(wù)以一個(gè)Javascript (Js)無(wú)參數(shù)函數(shù)funct1n {任務(wù)I,任務(wù)2----}包含起來(lái)。
[0028]任務(wù)包括兩種任務(wù)類型,即同步任務(wù)和異步任務(wù)。異步任務(wù)指Ajax異步請(qǐng)求數(shù)據(jù)任務(wù),這是主要需要同步代碼內(nèi)容。同步任務(wù)則是不包含Ajax異步請(qǐng)求的任何Js代碼(例如dom操作,數(shù)據(jù)處理等)。
[0029]優(yōu)選地,可以指明任務(wù)的任務(wù)類型是同步任務(wù)還是異步任務(wù),以便于創(chuàng)建不同的任務(wù)代理。
[0030]所述任務(wù)關(guān)系包括:依賴關(guān)系和/或執(zhí)行條件。
[0031]所述依賴關(guān)系是基于前驅(qū)任務(wù)列表和/或后繼任務(wù)列表確定的。任務(wù)的前驅(qū)任務(wù)列表由任務(wù)的所有前驅(qū)任務(wù)構(gòu)成。任務(wù)的后繼任務(wù)列表由任務(wù)的所有后繼任務(wù)構(gòu)成。前驅(qū)任務(wù)表示所述任務(wù)所依賴于的任務(wù),即只有全部前驅(qū)任務(wù)執(zhí)行完畢后,才可執(zhí)行所述任務(wù)。后繼任務(wù)表示依賴于所述任務(wù)的任務(wù),即只有執(zhí)行完所述任務(wù)后,才有可能執(zhí)行任何后繼任務(wù)(必要條件,不一定是充分的)。
[0032]所述執(zhí)行條件是決定是否能夠執(zhí)行所述任務(wù)的條件。如果存在針對(duì)某一任務(wù)的執(zhí)行條件,則即使該任務(wù)的所有前驅(qū)任務(wù)都已執(zhí)行完畢,也需要判斷所述執(zhí)行條件,只有當(dāng)所述執(zhí)行條件被滿足時(shí)才可執(zhí)行所述任務(wù)。優(yōu)選的,所述執(zhí)行條件可以是某一前驅(qū)節(jié)點(diǎn)的成功或失敗。
[0033]優(yōu)選地,在執(zhí)行步驟SllO之前,需要?jiǎng)?chuàng)建任務(wù)隊(duì)列或更新已有的任務(wù)隊(duì)列,并為每個(gè)任務(wù)指定以下各項(xiàng)中的至少一個(gè):任務(wù)類型、前驅(qū)任務(wù)列表、后繼任務(wù)列表以及執(zhí)行條件。
[0034]在一種優(yōu)選的實(shí)施例中,可通過(guò)創(chuàng)建依賴關(guān)系圖來(lái)確定所述任務(wù)關(guān)系。如圖3所示,依賴關(guān)系圖是一個(gè)有向無(wú)環(huán)圖,可以表示出任務(wù)的依賴關(guān)系。每個(gè)節(jié)點(diǎn)代表一個(gè)任務(wù),深色節(jié)點(diǎn)代表異步任務(wù),白色節(jié)點(diǎn)代表同步任務(wù)。Ajax屬于異步任務(wù),異步任務(wù)一般會(huì)有兩個(gè)分支,一個(gè)代表成功返回,一個(gè)代表失敗。同步任務(wù)主要指一些非異步操作,例如,運(yùn)算或者dom操作等。任務(wù)之間連線代表依賴關(guān)系,依賴的任務(wù)執(zhí)行完,才可以執(zhí)行后續(xù)任務(wù)。優(yōu)選的,所述依賴關(guān)系圖還可表示出執(zhí)行條件。例如:成功執(zhí)行一個(gè)分支,失敗執(zhí)行另一個(gè)分支。此外,有些任務(wù)不需要執(zhí)行條件,即只要前驅(qū)任務(wù)完成后,就可以啟動(dòng)。<
當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
子长县| 柯坪县| 陇南市| 轮台县| 辽阳市| 满城县| 洞头县| 邵阳市| 寻乌县| 遵义县| 弋阳县| 铜鼓县| 霸州市| 普洱| 哈巴河县| 贵溪市| 湖南省| 缙云县| 云阳县| 依兰县| 奇台县| 通辽市| 云浮市| 宁陕县| 昌黎县| 辽阳市| 隆化县| 郯城县| 金门县| 滁州市| 同心县| 镇原县| 左贡县| 阳东县| 沂南县| 自贡市| 富川| 河曲县| 岳西县| 太仆寺旗| 珠海市|