鬼佬大哥大
  • / 10
  • 下載費用:30 金幣  

用于執行網頁任務的方法和裝置.pdf

摘要
申請專利號:

CN201510454235.2

申請日:

2015.07.29

公開號:

CN105068912A

公開日:

2015.11.18

當前法律狀態:

實審

有效性:

審中

法律詳情: 實質審查的生效IPC(主分類):G06F 11/28申請日:20150729|||公開
IPC分類號: G06F11/28 主分類號: G06F11/28
申請人: 北京京東尚科信息技術有限公司; 北京京東世紀貿易有限公司
發明人: 宋全旺; 胡浩; 馬斗; 常偉; 尹家彬; 李濤; 李雪楠; 王樂; 宋騰; 劉興瑤
地址: 100080北京市海淀區杏石口路65號西杉創意園西區11C樓東段1-4層西段1-4層
優先權:
專利代理機構: 中科專利商標代理有限責任公司11021 代理人: 倪斌
PDF完整版下載: PDF下載
法律狀態
申請(專利)號:

CN201510454235.2

授權公告號:

|||

法律狀態公告日:

2015.12.16|||2015.11.18

法律狀態類型:

實質審查的生效|||公開

摘要

本發明提供了一種用于執行網頁任務的方法和裝置。所述方法包括:確定任務隊列中的各個任務的任務關系;根據所述任務關系確定當前狀態下可執行的任務,其中只有任務的所有前驅任務都已被執行時,所述任務才被確定為可執行的任務;以及為每個可執行的任務分別創建任務代理,并通過所創建的任務代理分別執行相應的可執行的任務。

權利要求書

1.一種用于執行網頁任務的方法,包括:
a)確定任務隊列中的各個任務的任務關系;
b)根據所述任務關系確定當前狀態下可執行的任務,其中只有任
務的所有前驅任務都已被執行時,所述任務才被確定為可執行的任務;
以及
c)為每個可執行的任務分別創建任務代理,并通過所創建的任務
代理分別執行相應的可執行的任務。
2.根據權利要求1所述的方法,所述方法在步驟c之后還包括:
d)當任何一個任務執行完畢后,回到步驟b。
3.根據權利要求1所述的方法,所述方法在步驟a之前還包括:
e)創建任務隊列或更新已有的任務隊列。
4.根據權利要求3所述的方法,其中為所述任務隊列中的每個任務
指定以下各項中的至少一個:任務類型、前驅任務列表、后繼任務列表
以及執行條件。
5.根據權利要求4所述的方法,其中所述任務類型包括:同步任務
和/或異步任務。
6.根據權利要求1-3中的任一項所述的方法,其中所述任務關系包
括:依賴關系和/或執行條件。
7.根據權利要求6所述的方法,其中所述依賴關系是基于前驅任務
列表和/或后繼任務列表確定的。
8.根據權利要求1-3中的任一項所述的方法,其中步驟b包括:
如果存在針對任務的執行條件,則只有當所述執行條件被滿足時,
所述任務才被確定為可執行的任務。
9.一種用于執行網頁任務的設備,包括:
關系確定裝置,用于確定任務隊列中的各個任務的任務關系;
可執行任務確定裝置,用于根據所述任務關系確定當前狀態下可執
行的任務,其中只有任務的所有前驅任務都已被執行時,所述任務才被
確定為可執行的任務;以及
執行裝置,用于為每個可執行的任務分別創建任務代理,并通過所
創建的任務代理分別執行相應的可執行的任務。
10.根據權利要求9所述的設備,其中:
當所述執行裝置執行了任何一個任務后,所述可執行任務確定裝置
重新掃描可執行的任務。
11.根據權利要求9所述的設備,還包括:
隊列創建裝置,用于創建任務隊列或更新已有的任務隊列。
12.根據權利要求11所述的設備,其中為所述任務隊列中的每個任
務指定以下各項中的至少一個:任務類型、前驅任務列表、后繼任務列
表以及執行條件。
13.根據權利要求12所述的設備,其中所述任務類型包括:同步任
務和/或異步任務。
14.根據權利要求9-11中的任一項所述的設備,其中所述任務關系
包括:依賴關系和/或執行條件。
15.根據權利要求14所述的設備,其中所述依賴關系是基于前驅任
務列表和/或后繼任務列表確定的。
16.根據權利要求9-11中的任一項所述的設備,其中:
如果存在針對任務的執行條件,則只有當所述執行條件被滿足時,
所述可執行任務確定裝置才將所述任務確定為可執行的任務。

說明書

用于執行網頁任務的方法和裝置

技術領域

本發明涉及網絡技術,并具體地涉及一種用于執行網頁任務的方法
和裝置。

背景技術

作為Web2.0的核心技術,Ajax通過異步方式,在不刷新頁面的情況
下從服務器獲取數據。Ajax不阻塞用戶請求,提高了頁面響應速度,降
低了服務器的壓力,給Web系統用戶體驗帶來了質的飛越。

但是Ajax的大量使用,使前端頁面代碼充斥著大量的異步事件,它
們可能在任何時刻以隨機順序被觸發。當業務邏輯需要多個操作保持特
定順序,而這些操作又依賴多個異步請求時,問題就變得非常復雜。

在處理異步順序問題時,現有的方式采用Ajax回調方法,即當Ajax
請求成功或者失敗后,在回調函數中處理下一步的操作。但是,當多個
異步操作存在依賴關系時或一個操作依賴多個異步操作時,通過回調方
式很難進行處理。這不僅給開發人員帶來挑戰,而且還具有以下缺點:

1.代碼結構復雜,難以理解和維護,效率低下。如果有復雜的依賴
關系,例如:Ajax任務C同時依賴Ajax任務A和ajax任務B,那么只能先
執行Ajax任務A,再在A的回調函數中執行任務B,然后在B的回調函數
中執行任務C。這樣不僅程序復雜,而且A和B需要順序執行,沒有并發
執行,效率低下。

2.異步調用順序難以保證,容易引發系統bug,而且bug具有隨機性,
難以發現。

3.同步調用會鎖住頁面,影響用戶體驗,效率低下。

4.依賴關系不能實現定制。當前端業務需要靈活配置的異步流程時,
如使用Ajax回調方法處理異步請求順序問題,需要復雜的控制邏輯。流
程無法修改,更不能實現靈活配置。

發明內容

為了解決以上存在的至少一個問題,本發明提出了一種用于執行網
頁任務的方法和裝置。

根據本發明的一個方面,提出了一種用于執行網頁任務的方法,包
括:a)確定任務隊列中的各個任務的任務關系;b)根據所述任務關系
確定當前狀態下可執行的任務,其中只有任務的所有前驅任務都已被執
行時,所述任務才被確定為可執行的任務;以及c)為每個可執行的任務
分別創建任務代理,并通過所創建的任務代理分別執行相應的可執行的
任務。

優選地,所述方法在步驟c之后還包括:d)當任何一個任務執行完
畢后,回到步驟b。

優選地,所述方法在步驟a之前還包括:e)創建任務隊列或更新已
有的任務隊列。

優選地,為所述任務隊列中的每個任務指定以下各項中的至少一個:
任務類型、前驅任務列表、后繼任務列表以及執行條件。

優選地,所述任務類型包括:同步任務和/或異步任務。

優選地,所述任務關系包括:依賴關系和/或執行條件。

優選地,所述依賴關系是基于前驅任務列表和/或后繼任務列表確定
的。

優選地,步驟b包括:如果存在針對任務的執行條件,則只有當所述
執行條件被滿足時,所述任務才被確定為可執行的任務。

根據本發明的另一方面,還提出了一種用于執行網頁任務的設備,
包括:關系確定裝置,用于確定任務隊列中的各個任務的任務關系;可
執行任務確定裝置,用于根據所述任務關系確定當前狀態下可執行的任
務,其中只有任務的所有前驅任務都已被執行時,所述任務才被確定為
可執行的任務;以及執行裝置,用于為每個可執行的任務分別創建任務
代理,并通過所創建的任務代理分別執行相應的可執行的任務。

通過以上所提出的方法和設備,不僅解決了包含Ajax異步調用的多
個互相依賴的功能模塊的順序問題,使業務邏輯代碼與異步順序控制解
耦,而且還使頁面既具有Ajax異步性的便利,并同時能根據用戶指定的
順序依次執行。所提出的方案支持對多個相互依賴的異步流程的靈活定
制。

附圖說明

圖1是根據本發明的一種實施例的執行網頁任務的方法的流程圖;

圖2是根據本發明的一種實施例的執行網頁任務的設備的結構框圖;

圖3是示例性的任務依賴關系圖;

圖4是根據本發明的一種具體實施例的詳細流程。

具體實施方式

以下結合附圖對本發明的具體實施方式進行具體說明。

首先參見圖1,圖1是根據本發明的一種實施例的執行網頁任務的方
法100的流程圖。如圖所示,所示方法100起始于步驟S110,確定任務隊
列中的各個任務的任務關系。接著,在步驟S120中,根據所述任務關系
確定當前狀態下可執行的任務,其中只有任務的所有前驅任務都已被執
行時,所述任務才被確定為可執行的任務。最后,在步驟S130中,為每
個可執行的任務分別創建任務代理,并通過所創建的任務代理分別執行
相應的可執行的任務。

在步驟S110中,首先確定任務隊列中的各個任務的任務關系。

其中,任務是對應于需要同步的操作的代碼序列的組合。任務隊列
是用戶需要執行的多個相互依賴的任務的集合。為了實現任務的自動調
度,可以把多個任務以一個Javascript(Js)無參數函數function{任務1,
任務2....}包含起來。

任務包括兩種任務類型,即同步任務和異步任務。異步任務指Ajax
異步請求數據任務,這是主要需要同步代碼內容。同步任務則是不包含
Ajax異步請求的任何Js代碼(例如dom操作,數據處理等)。

優選地,可以指明任務的任務類型是同步任務還是異步任務,以便
于創建不同的任務代理。

所述任務關系包括:依賴關系和/或執行條件。

所述依賴關系是基于前驅任務列表和/或后繼任務列表確定的。任務
的前驅任務列表由任務的所有前驅任務構成。任務的后繼任務列表由任
務的所有后繼任務構成。前驅任務表示所述任務所依賴于的任務,即只
有全部前驅任務執行完畢后,才可執行所述任務。后繼任務表示依賴于
所述任務的任務,即只有執行完所述任務后,才有可能執行任何后繼任
務(必要條件,不一定是充分的)。

所述執行條件是決定是否能夠執行所述任務的條件。如果存在針對
某一任務的執行條件,則即使該任務的所有前驅任務都已執行完畢,也
需要判斷所述執行條件,只有當所述執行條件被滿足時才可執行所述任
務。優選的,所述執行條件可以是某一前驅節點的成功或失敗。

優選地,在執行步驟S110之前,需要創建任務隊列或更新已有的任
務隊列,并為每個任務指定以下各項中的至少一個:任務類型、前驅任
務列表、后繼任務列表以及執行條件。

在一種優選的實施例中,可通過創建依賴關系圖來確定所述任務關
系。如圖3所示,依賴關系圖是一個有向無環圖,可以表示出任務的依賴
關系。每個節點代表一個任務,深色節點代表異步任務,白色節點代表
同步任務。Ajax屬于異步任務,異步任務一般會有兩個分支,一個代表
成功返回,一個代表失敗。同步任務主要指一些非異步操作,例如,運
算或者dom操作等。任務之間連線代表依賴關系,依賴的任務執行完,
才可以執行后續任務。優選的,所述依賴關系圖還可表示出執行條件。
例如:成功執行一個分支,失敗執行另一個分支。此外,有些任務不需
要執行條件,即只要前驅任務完成后,就可以啟動。

然后,在步驟S120中,根據所述任務關系確定當前狀態下可執行的
任務,其中只有任務的所有前驅任務都已被執行時,所述任務才被確定
為可執行的任務。

在該步驟中,通過任務關系可以確定一個任務的所有前驅任務和后
繼任務,得到所有任務之間的依賴關系。只有任務的所有前驅任務都已
被執行時,所述任務才被確定為可執行的任務。并且,如果存在針對任
務的執行條件的話,則只有當所述執行條件被滿足時,所述任務才被確
定為可執行的任務。

優選地,通過任務掃描的方式確定所有可執行的任務。

最后,在步驟S130中,為每個可執行的任務分別創建任務代理,并
通過所創建的任務代理分別執行相應的可執行的任務。

任務代理是對任務的包裝,不僅會執行任務、更新任務完成狀態,
而且根據任務的類型(同步、異步)創建通知,如果是同步任務,直接
通知任務掃描模塊繼續掃描。如果是異步任務,在異步的回調函數中注
冊通知。

優選地,對于有執行結果的任務,可以把結果保存到一個與任務關
聯的結構中,可以供后續的任務提取使用。例如,如果后一個任務需要
使用前一個任務的Ajax結果,則可以通過該方式實現提取。

優選地,在執行執行完任何一個任務后,所述方法可以回到步驟
S120,即再次判斷執行完任務后的新情況下有哪些任務是可執行的,并
對其進行執行,以此類推。

下面,參照圖2描述根據本發明的一種實施例的執行網頁任務的設備
200的結構框圖。如圖所示,所述裝置包括:關系確定裝置210、可執行
任務確定裝置220和執行裝置230。其中,所述關系確定裝置210用于確定
任務隊列中的各個任務的任務關系。所述可執行任務確定裝置220用于根
據所述任務關系確定當前狀態下可執行的任務,其中只有任務的所有前
驅任務都已被執行時,所述任務才被確定為可執行的任務。所述執行裝
置230用于為每個可執行的任務分別創建任務代理,并通過所創建的任務
代理分別執行相應的可執行的任務。

該執行網頁任務的設備200與上述執行網頁任務的方法100相對應。
以上對方法100的具體描述和解釋同樣適用于裝置200,在此不再贅述。

圖4是根據本發明的一種具體實施例的詳細流程。需要指出的是,該
詳細流程只是示例,并不限制本發明的范圍,其它實施例的步驟可以多
于或少于該具體實施例的步驟,并且還可通過其它步驟對該具體實施例
的步驟進行替換以實現同樣的功能。

-在流程開始后,把需要順序控制的任務定義成函數,為系統添加
任務。添加每個任務時需要指定任務類型、前驅和后繼任務列表、
任務的執行條件等。

-任務添加完畢后,執行啟動操作。優選地,根據所有任務創建保
存任務依賴關系的有向無環圖,記錄任務的前驅任務和后繼任務。

-接下來,掃描任務依賴關系圖,取出可以執行的任務(即前驅任
務已經完成或不存在),創建任務代理進行執行。任務代理的作
用不僅包含執行任務,而且在任務執行完畢后保存執行結果、并
且發消息通知。如果是異步任務,通過注冊事件的方式,使任務
執行完畢后發出消息通知。

-任何任務執行完畢后,都會發出通知,通知通過再次觸發之前的
流程,重新對可執行任務列表進行計算。通過這種方式,每個任
務執行完畢后,才重新計算可執行任務列表,使任務隊列不斷向
前推進,比采用定期任務掃描更高效。

-任務執行完畢后,通過標志位記錄其狀態,根據該狀態判斷當前
哪些任務可以執行。

-全部任務執行完畢后,銷毀內存結構。

盡管以上已經結合本發明的優選實施例示出了本發明,但是本領域
的技術人員將會理解,在不脫離本發明的精神和范圍的情況下,可以對
本發明進行各種修改、替換和改變。因此,本發明不應由上述實施例來
限定,而應由所附權利要求及其等同來限定。

關 鍵 詞:
用于 執行 網頁 任務 方法 裝置
  專利查詢網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
關于本文
本文標題:用于執行網頁任務的方法和裝置.pdf
鏈接地址:http://www.wwszu.club/p-6385988.html
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服客服 - 聯系我們

[email protected] 2017-2018 zhuanlichaxun.net網站版權所有
經營許可證編號:粵ICP備17046363號-1 
 


收起
展開
鬼佬大哥大