一種Web應(yīng)用互斥事件的處理方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,特別涉及一種Web應(yīng)用互斥事件的處理方法及裝 置。
【背景技術(shù)】
[0002] 隨著互聯(lián)網(wǎng)的飛速發(fā)展,越來(lái)越多的應(yīng)用程序開(kāi)始轉(zhuǎn)移到Web上,使得各種Web應(yīng) 用層出不窮。為了支持更好的用戶體驗(yàn),提供更好的服務(wù),各Web應(yīng)用開(kāi)發(fā)人員也在不斷的 探索更好的開(kāi)發(fā)方式,與此同時(shí)各種Web瀏覽器也在不斷升級(jí),以適應(yīng)不斷變化的網(wǎng)絡(luò)環(huán) 境和用戶需求。
[0003] 在Web應(yīng)用中包括多種類型的Web應(yīng)用事件,且在這些Web應(yīng)用事件中也可能會(huì) 包括互斥事件。其中,在一定時(shí)間范圍內(nèi),同時(shí)觸發(fā)的一系列事件中,能且只能執(zhí)行其中一 個(gè)事件,可以將這一系列事件稱之為互斥事件組。然而,到目前為止,尚沒(méi)有一種處理方法 來(lái)對(duì)互斥事件進(jìn)行處理,因此,急需提供一種Web應(yīng)用互斥事件的處理方法。
【發(fā)明內(nèi)容】
[0004] 有鑒于此,本發(fā)明提供一種Web應(yīng)用互斥事件的處理方法及裝置,以實(shí)現(xiàn)對(duì)互斥 事件的處理。
[0005] 本發(fā)明實(shí)施例提供了一種Web應(yīng)用互斥事件的處理方法,包括:
[0006] 接收一個(gè)目標(biāo)事件;
[0007] 判斷所述目標(biāo)事件是否為互斥事件;
[0008] 在判斷結(jié)果包括所述目標(biāo)事件是互斥事件時(shí),確定所述目標(biāo)事件所在的互斥事件 組中是否包括被處理過(guò)的事件,若是,則不處理所述目標(biāo)事件;否則,處理所述目標(biāo)事件。
[0009] 優(yōu)選地,進(jìn)一步包括:
[0010] 對(duì)事件統(tǒng)一定義相同的格式,其中,定義的該格式包括唯一名稱和屬性參數(shù)。
[0011] 優(yōu)選地,
[0012] 進(jìn)一步包括:預(yù)先將多個(gè)互斥事件組更新到公共管理模塊;
[0013] 所述判斷所述目標(biāo)事件是否為互斥事件,包括:根據(jù)所述目標(biāo)事件的唯一名稱在 所述公共管理模塊中逐個(gè)遍歷各個(gè)互斥事件組,若在所述公共管理模塊中遍歷到所述目標(biāo) 事件的唯一名稱,確定所述目標(biāo)事件是互斥事件,否則,確定所述目標(biāo)事件是非互斥事件。
[0014] 優(yōu)選地,進(jìn)一步包括:
[0015] 針對(duì)不同類型的互斥事件設(shè)定不同的處理函數(shù),以使在處理所述目標(biāo)事件時(shí)調(diào)用 所述目標(biāo)事件所對(duì)應(yīng)的處理函數(shù);
[0016] 其中,互斥事件的類型包括:超時(shí)事件、下一步事件和取消事件中的任一兩種或三 種。
[0017] 優(yōu)選地,進(jìn)一步包括:在確定所述目標(biāo)事件所在的互斥事件組中包括被處理過(guò)的 事件時(shí),關(guān)閉線程處理標(biāo)識(shí),并執(zhí)行所述不處理所述目標(biāo)事件的操作;在確定所述目標(biāo)事件 所在的互斥事件組中不包括被處理過(guò)的事件時(shí),開(kāi)啟線程處理標(biāo)識(shí),并執(zhí)行所述處理所述 目標(biāo)事件的操作。
[0018] 本發(fā)明實(shí)施例還提供了一種Web應(yīng)用互斥事件的處理裝置,包括:
[0019] 接收單元,用于接收一個(gè)目標(biāo)事件;
[0020] 判斷單元,用于判斷所述目標(biāo)事件是否為互斥事件;
[0021] 確定單元,用于在判斷結(jié)果包括所述目標(biāo)事件是互斥事件時(shí),確定所述目標(biāo)事件 所在的互斥事件組中是否包括被處理過(guò)的事件,若是,則不處理所述目標(biāo)事件;否則,處理 所述目標(biāo)事件。
[0022] 優(yōu)選地,進(jìn)一步包括:
[0023] 定義單元,用于對(duì)事件統(tǒng)一定義相同的格式,其中,定義的該格式包括唯一名稱和 屬性參數(shù)。
[0024] 優(yōu)選地,
[0025] 進(jìn)一步包括:更新單元,用于預(yù)先將多個(gè)互斥事件組更新到公共管理模塊;
[0026] 所述判斷單元,用于根據(jù)所述目標(biāo)事件的唯一名稱在所述公共管理模塊中逐個(gè)遍 歷各個(gè)互斥事件組,若在所述公共管理模塊中遍歷到所述目標(biāo)事件的唯一名稱,確定所述 目標(biāo)事件是互斥事件,否則,確定所述目標(biāo)事件是非互斥事件。
[0027] 優(yōu)選地,進(jìn)一步包括:
[0028] 存儲(chǔ)單元,用于針對(duì)不同類型的互斥事件存儲(chǔ)不同的處理函數(shù),以使在處理所述 目標(biāo)事件時(shí)調(diào)用所述目標(biāo)事件所對(duì)應(yīng)的處理函數(shù);
[0029] 其中,互斥事件的類型包括:超時(shí)事件、下一步事件和取消事件中的任一兩種或三 種。
[0030] 優(yōu)選地,進(jìn)一步包括:
[0031] 處理單元,用于在所述確定單元確定所述目標(biāo)事件所在的互斥事件組中包括被處 理過(guò)的事件時(shí),關(guān)閉線程處理標(biāo)識(shí),并執(zhí)行所述不處理所述目標(biāo)事件的操作;以及用于在所 述確定單元確定所述目標(biāo)事件所在的互斥事件組中不包括被處理過(guò)的事件時(shí),開(kāi)啟線程處 理標(biāo)識(shí),并執(zhí)行所述處理所述目標(biāo)事件的操作。
[0032] 本發(fā)明實(shí)施例提供了一種Web應(yīng)用互斥事件的處理方法及裝置,在確定接收到的 目標(biāo)事件是一個(gè)互斥事件時(shí),通過(guò)確定該目標(biāo)事件所在的互斥事件組中是否包括被處理過(guò) 的事件,若是,表征與該目標(biāo)事件同時(shí)觸發(fā)的事件中已經(jīng)被執(zhí)行了,因此該目標(biāo)事件就不需 要在執(zhí)行了,否則,就表征與該目標(biāo)事件同時(shí)觸發(fā)的事件均沒(méi)有被執(zhí)行,因此,就可以執(zhí)行 該目標(biāo)事件,以實(shí)現(xiàn)對(duì)互斥事件的處理。
【附圖說(shuō)明】
[0033] 圖1是本發(fā)明實(shí)施例提供的方法流程圖;
[0034] 圖2是本發(fā)明另一實(shí)施例提供的方法流程圖;
[0035] 圖3是本發(fā)明實(shí)施例提供的裝置結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0036] 下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完 整地描述。顯然,所描述的實(shí)施例僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒?發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí) 施例,都屬于本發(fā)明保護(hù)的范圍。
[0037] 如圖1所示,本發(fā)明實(shí)施例提供了一種Web應(yīng)用互斥事件的處理方法,該方法可以 包括以下步驟:
[0038] 步驟101 :接收一個(gè)目標(biāo)事件。
[0039] 步驟102 :判斷目標(biāo)事件是否為互斥事件。
[0040] 步驟103 :在判斷結(jié)果包括目標(biāo)事件是互斥事件時(shí),確定目標(biāo)事件所在的互斥事 件組中是否包括被處理過(guò)的事件,若是,執(zhí)行步驟104 ;否則,執(zhí)行步驟105。
[0041] 步驟104 :不處理目標(biāo)事件。
[0042] 步驟105 :處理目標(biāo)事件。
[0043] 根據(jù)本方案,在確定接收到的目標(biāo)事件是一個(gè)互斥事件時(shí),通過(guò)確定該目標(biāo)事件 所在的互斥事件組中是否包括被處理過(guò)的事件,若是,表征與該目標(biāo)事件同時(shí)觸發(fā)的事件 中已經(jīng)被執(zhí)行了,因此該目標(biāo)事件就不需要在執(zhí)行了,否則,就表征與該目標(biāo)事件同時(shí)觸發(fā) 的事件均沒(méi)有被執(zhí)行,因此,就可以執(zhí)行該目標(biāo)事件,以實(shí)現(xiàn)對(duì)互斥事件的處理。
[0044] 為了方便對(duì)各個(gè)事件的管理,可以對(duì)事件統(tǒng)一定義相同的格式,其中,定義的該格 式可以包括唯一名稱和屬性參數(shù),以保證在接收到一個(gè)目標(biāo)事件時(shí),能夠根據(jù)該目標(biāo)事件 的格式確定其名稱和屬性參數(shù),從而便于對(duì)各個(gè)事件的管理。
[0045] 由于在判斷目標(biāo)事件是否為互斥事件時(shí),需要在存儲(chǔ)有多個(gè)互斥事件組的公共管 理模塊中遍歷各個(gè)互斥事件組,因此,可以通過(guò)目標(biāo)事件的的唯一名稱在公共管理模塊中 進(jìn)行遍歷,從而提高目標(biāo)事件判斷是否為互斥事件的效率,進(jìn)而提高了互斥事件的處理效 率。
[0046] 為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面結(jié)合附圖及具體實(shí)施例對(duì)本 發(fā)明作進(jìn)一步地詳細(xì)描述。
[0047] 如圖2所示,本發(fā)明實(shí)施例提供了一種Web應(yīng)用互斥事件的處理方法,該方法可以 包括以下步驟:
[0048] 步驟201 :定義事件字典。
[0049] 為了實(shí)現(xiàn)對(duì)各個(gè)事件的管理,在本實(shí)施例中,可以引入字典的概念,以實(shí)現(xiàn)事件字 典的定義。
[0050] 本實(shí)施例中,可以對(duì)不同類型的事件定義不同的格式,其中,事件類型可以包括: UI (用戶界面)事件、焦點(diǎn)事件、鼠標(biāo)事件、滾輪事件、文本事件、鍵盤事件、合成事件和變動(dòng) 事件。本實(shí)施例可以根據(jù)其事件類型的觸發(fā)方式為其定義不同的格式。
[0051] 由于每一個(gè)類型的事件對(duì)應(yīng)一個(gè)格式,可能會(huì)導(dǎo)致后續(xù)過(guò)程中在接收到一個(gè)目標(biāo) 事件時(shí),無(wú)法快速的判斷出該目標(biāo)事件是一個(gè)什么類型的時(shí)間,因此,為了便于對(duì)各個(gè)事件 的管理,在本發(fā)明一個(gè)優(yōu)選實(shí)施例中,可以對(duì)事件統(tǒng)一定義相同的格式,其中,定義的該格 式可以包括唯一名稱和屬性參數(shù)。為了適應(yīng)不同的事件類型,該屬性參數(shù)可以定義為可擴(kuò) 展格式,例如,JSON(JavaScript Object Notation,數(shù)據(jù)交換格式)。其中,每一個(gè)事件可 以包括至少一個(gè)唯一名稱,該事件的唯一名稱可以使用數(shù)字編號(hào)、字母編碼。
[0052] 其中,可以利用下述方式對(duì)事件進(jìn)行定義:
[0054] 步驟202 :定義公共管理模塊,以將多個(gè)互斥事件組更新到公共管理模塊中。
[0055] 在本實(shí)施例中,若在步驟201中,對(duì)不同類型的事件定義不同的格式,那么可以針 對(duì)每一個(gè)類型的事件建立一個(gè)管理模塊,以實(shí)現(xiàn)對(duì)相應(yīng)類型的事件進(jìn)行管理。若在步驟201 中,對(duì)事件統(tǒng)一定義相同的格式,那么可以針對(duì)各個(gè)事件建立一個(gè)公共管理模塊,由該公共 管理模塊對(duì)所有的互斥事件進(jìn)行管理。
[0056] 對(duì)于公共管理模塊,可以將其理解為一個(gè)互斥事件的存儲(chǔ)倉(cāng)庫(kù)。通過(guò)對(duì)該公共管 理模塊進(jìn)行初始化,公共管理模塊可以按照一定的規(guī)則對(duì)互斥事件進(jìn)行收集整理,以將Web 應(yīng)用中可能涉及到的互斥事件組都存儲(chǔ)到該公共管理模塊中。其中,在一段時(shí)間內(nèi),同時(shí)觸 發(fā)的一系列事件共同稱之為互斥事件組,同時(shí)觸發(fā)的每一個(gè)事件稱之為互斥事件。根據(jù)Web 應(yīng)用的原則,在包括互斥事件組時(shí),能且只能處理其中一個(gè)互斥事件。
[0057] 在事件處理過(guò)程中,可能會(huì)接收到公共管理模塊中不包括的互斥事件,因此,在本 實(shí)施例中,公共管理模塊還可以包括互斥事件添加、刪除、查詢和修改的功能。
[0058] 其中,可以利用如下方式實(shí)現(xiàn)對(duì)公共管理模塊的定義:
[0059]
[0060] 步驟203 :接收一個(gè)目標(biāo)事件。
[0061] 其中,接收的該目標(biāo)事件的格式可以包括:唯一名稱〃屬性參數(shù)。例如,該唯一名 稱可以為001。
[0062] 步驟204:根據(jù)目標(biāo)事件的唯一名稱,在公共管理模塊中對(duì)各個(gè)互斥事件組進(jìn)行 逐個(gè)遍歷,若在公共管理模塊中遍歷到該目標(biāo)事件的唯一名稱,執(zhí)行步驟206 ;否則,執(zhí)行 步驟205。
[0063] 在本實(shí)施例中,由于在公共管理模塊中存儲(chǔ)有多個(gè)互斥事件組,每一個(gè)互斥事件 組中包括多個(gè)互斥事件,因此,可以根據(jù)目標(biāo)事件的唯一名稱001在公共管理模塊中逐個(gè) 遍歷互斥事件組。
[0064] 為了提高目標(biāo)事件在公共管理模塊中的遍歷的效率,在本發(fā)明一個(gè)優(yōu)選實(shí)施例 中,在公共管理模塊中進(jìn)行存儲(chǔ)時(shí),可以根據(jù)互斥事件的類型,將公共管理模塊劃分為多個(gè)