亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

事件驅(qū)動方法和事件驅(qū)動系統(tǒng)的制作方法

文檔序號:6552389閱讀:188來源:國知局
事件驅(qū)動方法和事件驅(qū)動系統(tǒng)的制作方法
【專利摘要】本發(fā)明提供了一種基于JavaScript的事件驅(qū)動方法和事件驅(qū)動系統(tǒng),包括:儀表板上的任一部件在檢測到自身的事件被觸發(fā)時,向事件管理器發(fā)送事件觸發(fā)信息;所述事件管理器廣播接收到的所述事件觸發(fā)信息;所述儀表板上的任一部件以外的其他部件接收所述廣播的所述事件觸發(fā)信息,根據(jù)所述事件觸發(fā)信息、所述事件的驅(qū)動腳本的定義和預設(shè)的JavaScript模版文件生成統(tǒng)一的JavaScript腳本文件,并根據(jù)所述JavaScript腳本文件向腳本管理器注冊所述事件。通過本發(fā)明的技術(shù)方案,可以使一套驅(qū)動腳本適應(yīng)不同平臺的需求,由事件管理器統(tǒng)一調(diào)度事件,提高了腳本的可讀性和部件的靈活性,降低了編寫和維護的成本和難度。
【專利說明】事件驅(qū)動方法和事件驅(qū)動系統(tǒng)

【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及數(shù)據(jù)處理【技術(shù)領(lǐng)域】,具體而言,涉及一種事件驅(qū)動方法和一種事件驅(qū) 動系統(tǒng)。

【背景技術(shù)】
[0002] 目前,儀表板在BI (Business Intelligence,商業(yè)智能)中有著舉足輕重的作用。 在儀表板實施的過程中,會涉及到很多的部件以及很多部件之間的協(xié)調(diào)控制,如按鈕、圖 表、報表、樹以及他們之間的聯(lián)動與協(xié)調(diào)工作等,如何協(xié)調(diào)各部件一直是制作儀表板產(chǎn)品所 面對的問題。目前大多數(shù)的BI產(chǎn)品采用十分簡單的配置方式來實現(xiàn)部件之間的聯(lián)動,如配 置BCKBusiness Object,業(yè)務(wù)對象層)等。但是隨著業(yè)務(wù)需求復雜度的提升,通過界面配置 的方式來實現(xiàn)部件交互變得越來越復雜,從而給維護工作帶來了很大的難度。
[0003] 無論在Swing平臺,還是在Web平臺,所有可視化部件之間的交互均提供事件機 制,在特定事件中編寫業(yè)務(wù)代碼以實現(xiàn)交互。但這種做法不能從根本上解決儀表板部件的 交互問題,主要原因有:
[0004] (1)BQ儀表板的運行環(huán)境復雜,無法讓一套驅(qū)動腳本既適合在Web中運行,又可以 在Swing中運行;
[0005] (2)難以在降低部件的交互難度的同時獲得良好的代碼質(zhì)量,以及突出產(chǎn)品的特 色。
[0006] 因此,如何使一套驅(qū)動腳本適應(yīng)不同平臺的需求,并在實現(xiàn)儀表板上的部件聯(lián)動 的同時降低編寫腳本難度,成為目前亟待解決的問題。


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

[0007] 本發(fā)明正是基于上述技術(shù)問題,提出了一種新的技術(shù)方案,可以使一套驅(qū)動腳本 適應(yīng)不同平臺的需求,由事件管理器統(tǒng)一調(diào)度事件,提高腳本的可讀性和部件的靈活性,降 低編寫和維護的成本和難度。
[0008] 根據(jù)本發(fā)明的一個方面,提出了一種基于JavaScript的事件驅(qū)動方法,包括:儀 表板上的任一部件在檢測到自身的事件被觸發(fā)時,向事件管理器發(fā)送事件觸發(fā)信息;所述 事件管理器廣播接收到的所述事件觸發(fā)信息;所述儀表板上的任一部件以外的其他部件接 收所述廣播的所述事件觸發(fā)信息,根據(jù)所述事件觸發(fā)信息、所述事件的驅(qū)動腳本的定義和 預設(shè)的JavaScript模版文件生成統(tǒng)一的JavaScript腳本文件,并根據(jù)所述JavaScript腳 本文件向腳本管理器注冊所述事件。
[0009] Javascript是一種基于對象的動態(tài)類型的區(qū)分大小寫的客戶端腳本語言,主要用 于解決服務(wù)器端語言遺留的速度問題,為客戶提供更流暢的瀏覽效果。比如,當服務(wù)端需要 對數(shù)據(jù)進行驗證時,由于網(wǎng)絡(luò)速度相當緩慢,只有28. 8kbps,驗證步驟浪費的時間太多,于 是可以在Netscape瀏覽器中加入了 Javascript,提供了數(shù)據(jù)驗證的基本功能,Javascript 的作用也體現(xiàn)在實現(xiàn)網(wǎng)頁的一些難度較高的特效,通常和Jq Uery(-種兼容多瀏覽器的 Javascript框架)、Ajax (-種快速創(chuàng)建動態(tài)網(wǎng)頁技術(shù))聯(lián)合使用。(來自網(wǎng)頁鏈接http: // baike.baidu.com/view/16168.htm)
[0010] 在該技術(shù)方案中,使用事件管理器統(tǒng)一管理和調(diào)度事件,便于實現(xiàn)部件的聯(lián)動, 從而時事件驅(qū)動腳本更加集中,降低腳本編寫的難度。根據(jù)驅(qū)動腳本的定義和預設(shè)的 JavaScript模版文件生成統(tǒng)一的JavaScript腳本文件,可以使一套驅(qū)動腳本適應(yīng)不同平 臺的需求,比如同時適配與Swing平臺和Web平臺,提高了腳本的可讀性和部件的靈活性, 降低了編寫和維護的成本和難度,使產(chǎn)品游刃有余地適應(yīng)不同業(yè)務(wù)場景和各種復雜的業(yè)務(wù) 需求。
[0011] 在上述技術(shù)方案中,優(yōu)選地,所述事件管理器根據(jù)接收到的所述事件觸發(fā)信息的 來源,判斷是否廣播所述事件觸發(fā)信息。
[0012] 在該技術(shù)方案中,廣播事件觸發(fā)信息前,需要對事件觸發(fā)信息的來源進行追蹤,判 斷是否需要對此事件觸發(fā)信息進行廣播,以避免發(fā)送循環(huán)消息導致系統(tǒng)假死。
[0013] 在上述技術(shù)方案中,優(yōu)選地,包括:所述儀表板上的任一部件以外的其他部件接收 所述事件觸發(fā)信息,并根據(jù)所述事件觸發(fā)信息的來源和內(nèi)容,判斷是否所述事件觸發(fā)信息 是否有效,以及當判斷結(jié)果為是時,執(zhí)行所述事件觸發(fā)信息對應(yīng)的所述事件的驅(qū)動腳本,否 貝1J,不響應(yīng)所述事件觸發(fā)信息。
[0014] 在該技術(shù)方案中,在儀表板部件的設(shè)計過程中,儀表板部件除了具有傳統(tǒng)UI (用 戶界面)部件擁有的事件行為外,增加 send Message (發(fā)送消息)和on Message (接收消 息)方法,并在此兩種方法中編寫部件對外部觸發(fā)信息響應(yīng)的業(yè)務(wù)邏輯。當事件管理器對 外廣播觸發(fā)信息時,會觸發(fā)接收該觸發(fā)信息的部件的on Message方法,該部件根據(jù)觸發(fā)信 息的來源和內(nèi)容,判斷是否對該on Message方法感興趣,如果感興趣,就執(zhí)行該onMessage 方法中的腳本,否則忽略該觸發(fā)信息。
[0015] 在上述技術(shù)方案中,優(yōu)選地,還包括:向運行時上下文注冊被觸發(fā)所述事件的所述 儀表板上的任一部件的信息。
[0016] 在上述技術(shù)方案中,優(yōu)選地,還包括:管理事件驅(qū)動過程中的所有參數(shù),并維護運 行環(huán)境。
[0017] 在該技術(shù)方案中,向運行時上下文注冊事件驅(qū)動過程中部件的自身信息,有助于 運行時上下文將事件驅(qū)動過程中的所有參數(shù)集中起來進行維護。
[0018] 根據(jù)本發(fā)明的另一方面,提出了一種基于JavaScript的事件驅(qū)動系統(tǒng),包括:發(fā) 送單元,用于在儀表板上的任一部件在檢測到自身的事件被觸發(fā)時,向事件管理器發(fā)送事 件觸發(fā)信息;廣播單元,所述事件管理器廣播所述事件觸發(fā)信息;執(zhí)行單元,所述儀表板上 的任一部件以外的其他部件接收所述事件觸發(fā)信息,根據(jù)所述事件觸發(fā)信息、所述事件的 驅(qū)動腳本的定義和預設(shè)的JavaScript模版文件生成統(tǒng)一的JavaScript腳本文件,并根據(jù) 所述JavaScript腳本文件向腳本管理器注冊所述事件。
[0019] 在該技術(shù)方案中,使用事件管理器統(tǒng)一管理和調(diào)度事件,便于實現(xiàn)部件的聯(lián)動, 從而時事件驅(qū)動腳本更加集中,降低腳本編寫的難度。根據(jù)驅(qū)動腳本的定義和預設(shè)的 JavaScript模版文件生成統(tǒng)一的JavaScript腳本文件,可以使一套驅(qū)動腳本適應(yīng)不同平 臺的需求,比如同時適配與Swing平臺和Web平臺,提高了腳本的可讀性和部件的靈活性, 降低了編寫和維護的成本和難度,使產(chǎn)品游刃有余地適應(yīng)不同業(yè)務(wù)場景和各種復雜的業(yè)務(wù) 需求。
[0020] 在上述技術(shù)方案中,優(yōu)選地,還包括:判斷單元,所述事件管理器根據(jù)接收到的所 述事件觸發(fā)信息的來源,判斷是否廣播所述事件觸發(fā)信息。
[0021] 在該技術(shù)方案中,廣播事件觸發(fā)信息前,需要對事件觸發(fā)信息的來源進行追蹤,判 斷是否需要對此事件觸發(fā)信息進行廣播,以避免發(fā)送循環(huán)消息導致系統(tǒng)假死。
[0022] 在上述技術(shù)方案中,優(yōu)選地,所述執(zhí)行單元包括:所述儀表板上的任一部件以外的 其他部件根據(jù)接收到的所述事件觸發(fā)信息的來源和內(nèi)容,判斷是否所述事件觸發(fā)信息是否 有效,以及當判斷結(jié)果為是時,執(zhí)行所述事件觸發(fā)信息對應(yīng)的所述事件的驅(qū)動腳本,否則, 不響應(yīng)所述事件觸發(fā)信息。
[0023] 在該技術(shù)方案中,在儀表板部件的設(shè)計過程中,儀表板部件除了具有傳統(tǒng)UI (用 戶界面)部件擁有的事件行為外,增加 send Message (發(fā)送消息)和on Message (接收消 息)方法,并在此兩種方法中編寫部件對外部觸發(fā)信息響應(yīng)的業(yè)務(wù)邏輯。當事件管理器對 外廣播觸發(fā)信息時,會觸發(fā)接收該觸發(fā)信息的部件的on Message方法,該部件根據(jù)觸發(fā)信 息的來源和內(nèi)容,判斷是否對該on Message方法感興趣,如果感興趣,就執(zhí)行該on Message 方法中的腳本,否則忽略該觸發(fā)信息。
[0024] 在上述技術(shù)方案中,優(yōu)選地,還包括:注冊單元,用于向運行時上下文注冊被觸發(fā) 所述事件的所述儀表板上的任一部件的信息。
[0025] 在上述技術(shù)方案中,優(yōu)選地,還包括:維護單元,用于管理事件驅(qū)動過程中的所有 參數(shù),并維護運行環(huán)境。
[0026] 在該技術(shù)方案中,向運行時上下文注冊事件驅(qū)動過程中部件的自身信息,有助于 運行時上下文將事件驅(qū)動過程中的所有參數(shù)集中起來進行維護。
[0027] 通過本發(fā)明的技術(shù)方案,可以使一套驅(qū)動腳本適應(yīng)不同平臺的需求,由事件管理 器統(tǒng)一調(diào)度事件,提高了腳本的可讀性和部件的靈活性,降低了編寫和維護的成本和難度, 使產(chǎn)品游刃有余地適應(yīng)不同業(yè)務(wù)場景和各種復雜的業(yè)務(wù)需求。

【專利附圖】

【附圖說明】
[0028] 圖1示出了根據(jù)本發(fā)明的實施例的事件驅(qū)動方法的流程圖;
[0029] 圖2示出了根據(jù)本發(fā)明的實施例的事件驅(qū)動系統(tǒng)的框圖;
[0030] 圖3示出了根據(jù)本發(fā)明的實施例的事件驅(qū)動方法的儀表板部件設(shè)計類圖;
[0031] 圖4示出了根據(jù)本發(fā)明的實施例的事件驅(qū)動方法的運行時初始化和腳本集中化 流程圖;
[0032] 圖5示出了根據(jù)本發(fā)明的實施例的事件驅(qū)動方法的腳本驅(qū)動流程圖。

【具體實施方式】
[0033] 為了能夠更清楚地理解本發(fā)明的上述目的、特征和優(yōu)點,下面結(jié)合附圖和具體實 施方式對本發(fā)明進行進一步的詳細描述。需要說明的是,在不沖突的情況下,本申請的實施 例及實施例中的特征可以相互組合。
[0034] 在下面的描述中闡述了很多具體細節(jié)以便于充分理解本發(fā)明,但是,本發(fā)明還可 以采用其他不同于在此描述的其他方式來實施,因此,本發(fā)明的保護范圍并不受下面公開 的具體實施例的限制。
[0035] 圖1示出了根據(jù)本發(fā)明的實施例的事件驅(qū)動方法的流程圖。
[0036] 如圖1所示,根據(jù)本發(fā)明的實施例的事件驅(qū)動方法,包括以下步驟:
[0037] 步驟102,儀表板上的任一部件在檢測到自身的事件被觸發(fā)時,向事件管理器發(fā)送 事件觸發(fā)信息。
[0038] 步驟104,事件管理器廣播接收到的事件觸發(fā)信息。
[0039] 步驟106,儀表板上的任一部件以外的其他部件接收廣播的事件觸發(fā)信息,根 據(jù)事件觸發(fā)信息、事件的驅(qū)動腳本的定義和預設(shè)的JavaScr i p t模版文件生成統(tǒng)一的 JavaScript腳本文件,并根據(jù)JavaScript腳本文件向腳本管理器注冊事件。
[0040] 在該技術(shù)方案中,使用事件管理器統(tǒng)一管理和調(diào)度事件,便于實現(xiàn)部件的聯(lián)動, 從而時事件驅(qū)動腳本更加集中,降低腳本編寫的難度。根據(jù)驅(qū)動腳本的定義和預設(shè)的 JavaScript模版文件生成統(tǒng)一的JavaScript腳本文件,可以使一套驅(qū)動腳本適應(yīng)不同平 臺的需求,比如同時適配與Swing平臺和Web平臺,提高了腳本的可讀性和部件的靈活性, 降低了編寫和維護的成本和難度,使產(chǎn)品游刃有余地適應(yīng)不同業(yè)務(wù)場景和各種復雜的業(yè)務(wù) 需求。
[0041] 在上述技術(shù)方案中,優(yōu)選地,步驟104還包括:事件管理器根據(jù)接收到的事件觸發(fā) 信息的來源,判斷是否廣播事件觸發(fā)信息。
[0042] 在該技術(shù)方案中,廣播事件觸發(fā)信息前,需要對事件觸發(fā)信息的來源進行追蹤,判 斷是否需要對此事件觸發(fā)信息進行廣播,以避免發(fā)送循環(huán)消息導致系統(tǒng)假死。
[0043] 在上述技術(shù)方案中,優(yōu)選地,步驟106包括:儀表板上的任一部件以外的其他部件 接收事件觸發(fā)信息,并根據(jù)事件觸發(fā)信息的來源和內(nèi)容,判斷是否事件觸發(fā)信息是否有效, 以及當判斷結(jié)果為是時,執(zhí)行事件觸發(fā)信息對應(yīng)的事件的驅(qū)動腳本,否則,不響應(yīng)事件觸發(fā) 信息。
[0044] 在該技術(shù)方案中,在儀表板部件的設(shè)計過程中,儀表板部件除了具有傳統(tǒng)UI (用 戶界面)部件擁有的事件行為外,增加 send Message (發(fā)送消息)和on Message (接收消 息)方法,并在此兩種方法中編寫部件對外部觸發(fā)信息響應(yīng)的業(yè)務(wù)邏輯。當事件管理器對 外廣播觸發(fā)信息時,會觸發(fā)接收該觸發(fā)信息的部件的on Message方法,該部件根據(jù)觸發(fā)信 息的來源和內(nèi)容,判斷是否對該on Message方法感興趣,如果感興趣,就執(zhí)行該on Message 方法中的腳本,否則忽略該觸發(fā)信息。
[0045] 在上述技術(shù)方案中,優(yōu)選地,還包括:向運行時上下文注冊被觸發(fā)事件的儀表板上 的任一部件的信息。
[0046] 在上述技術(shù)方案中,優(yōu)選地,還包括:管理事件驅(qū)動過程中的所有參數(shù),并維護運 行環(huán)境。
[0047] 在該技術(shù)方案中,向運行時上下文注冊事件驅(qū)動過程中部件的自身信息,有助于 運行時上下文將事件驅(qū)動過程中的所有參數(shù)集中起來進行維護。
[0048] 圖2示出了根據(jù)本發(fā)明的實施例的事件驅(qū)動系統(tǒng)的框圖。
[0049] 如圖2所示,根據(jù)本發(fā)明的實施例的事件驅(qū)動系統(tǒng)200,包括:發(fā)送單元202,用 于在儀表板上的任一部件在檢測到自身的事件被觸發(fā)時,向事件管理器發(fā)送事件觸發(fā)信 息;廣播單元204,事件管理器廣播事件觸發(fā)信息;執(zhí)行單元206,儀表板上的任一部件以 外的其他部件接收事件觸發(fā)信息,根據(jù)事件觸發(fā)信息、事件的驅(qū)動腳本的定義和預設(shè)的 JavaScript模版文件生成統(tǒng)一的JavaScript腳本文件,并根據(jù)JavaScript腳本文件向腳 本管理器注冊事件。
[0050] 在該技術(shù)方案中,使用事件管理器統(tǒng)一管理和調(diào)度事件,便于實現(xiàn)部件的聯(lián)動, 從而時事件驅(qū)動腳本更加集中,降低腳本編寫的難度。根據(jù)驅(qū)動腳本的定義和預設(shè)的 JavaScript模版文件生成統(tǒng)一的JavaScript腳本文件,可以使一套驅(qū)動腳本適應(yīng)不同平 臺的需求,比如同時適配與Swing平臺和Web平臺,提高了腳本的可讀性和部件的靈活性, 降低了編寫和維護的成本和難度,使產(chǎn)品游刃有余地適應(yīng)不同業(yè)務(wù)場景和各種復雜的業(yè)務(wù) 需求。
[0051] 在上述技術(shù)方案中,優(yōu)選地,還包括:判斷單元208,事件管理器根據(jù)接收到的事 件觸發(fā)信息的來源,判斷是否廣播事件觸發(fā)信息。
[0052] 在該技術(shù)方案中,廣播事件觸發(fā)信息前,需要對事件觸發(fā)信息的來源進行追蹤,判 斷是否需要對此事件觸發(fā)信息進行廣播,以避免發(fā)送循環(huán)消息導致系統(tǒng)假死。
[0053] 在上述技術(shù)方案中,優(yōu)選地,執(zhí)行單兀206包括:儀表板上的任一部件以外的其他 部件根據(jù)接收到的事件觸發(fā)信息的來源和內(nèi)容,判斷是否事件觸發(fā)信息是否有效,以及當 判斷結(jié)果為是時,執(zhí)行事件觸發(fā)信息對應(yīng)的事件的驅(qū)動腳本,否則,不響應(yīng)事件觸發(fā)信息。
[0054] 在該技術(shù)方案中,在儀表板部件的設(shè)計過程中,儀表板部件除了具有傳統(tǒng)UI (用 戶界面)部件擁有的事件行為外,增加 send Message (發(fā)送消息)和on Message (接收消 息)方法,并在此兩種方法中編寫部件對外部觸發(fā)信息響應(yīng)的業(yè)務(wù)邏輯。當事件管理器對 外廣播觸發(fā)信息時,會觸發(fā)接收該觸發(fā)信息的部件的on Message方法,該部件根據(jù)觸發(fā)信 息的來源和內(nèi)容,判斷是否對該on Message方法感興趣,如果感興趣,就執(zhí)行該on Message 方法中的腳本,否則忽略該觸發(fā)信息。
[0055] 在上述技術(shù)方案中,優(yōu)選地,還包括:注冊單元210,用于向運行時上下文注冊被 觸發(fā)事件的儀表板上的任一部件的信息。
[0056] 在上述技術(shù)方案中,優(yōu)選地,還包括:維護單元212,用于管理事件驅(qū)動過程中的 所有參數(shù),并維護運行環(huán)境。
[0057] 在該技術(shù)方案中,向運行時上下文注冊事件驅(qū)動過程中部件的自身信息,有助于 運行時上下文將事件驅(qū)動過程中的所有參數(shù)集中起來進行維護。
[0058] 圖3示出了根據(jù)本發(fā)明的實施例的事件驅(qū)動方法的儀表板部件設(shè)計類圖。
[0059] 如圖3所示,進行部件設(shè)計,導入設(shè)計對象DsComponent,引入attribude (定義和 用法)語句,以向部件添加 send Message (發(fā)送消息)和on Message (接收消息)方法兩 種屬性,其中on Message方法下還引入了 operation(運算)語句,用來計算部件是否對on Message方法感興趣。
[0060] 在儀表板部件的設(shè)計過程中,儀表板部件除了具有傳統(tǒng)UI (用戶界面)部件擁有 的事件行為外,增加 send Message方法和on Message方法,并在此兩種方法中編寫部件對 外部觸發(fā)信息響應(yīng)的業(yè)務(wù)邏輯。
[0061] 其中,send Message方法用于向事件管理器發(fā)送事件觸發(fā)信息,通知事件管理器, 部件自身的事件被觸發(fā)。
[0062] 對于on Message方法,當事件管理器對外廣播觸發(fā)信息時,會觸發(fā)接收該觸發(fā) 信息的部件的on Message方法,該部件根據(jù)觸發(fā)信息的來源和內(nèi)容,判斷是否對該on Message方法感興趣,如果感興趣,就執(zhí)行該on Message方法中的腳本,否則忽略該觸發(fā)信 息。
[0063] 圖4示出了根據(jù)本發(fā)明的實施例的事件驅(qū)動方法的運行時初始化和腳本集中化 流程圖。
[0064] 如圖4所示,根據(jù)本發(fā)明的實施例的事件驅(qū)動方法,包括:
[0065] 步驟402,初始化Contect(上下文)。Contect用于在事件驅(qū)動過程中將所有參數(shù) 集中起來進行維護。
[0066] 步驟404,初始化Even Manager (事件管理器)。Even Manager用于集中管理和調(diào) 度事件。
[0067] 步驟406,初始化腳本引擎,獲取腳本的定義。
[0068] 步驟408,讀取腳本模版文件,即預設(shè)的JavaScript模版文件。
[0069] 步驟410,解析存儲模型生成DsComponent。根據(jù)驅(qū)動腳本的定義和預設(shè)的 JavaScript模版文件生成統(tǒng)一的設(shè)計對象。
[0070] 步驟412,向運行時上下文注冊信息,即向運行時上下文注冊事件驅(qū)動過程中部件 的自身信息。
[0071] 步驟414,生成腳本文件,并編譯腳本文件。
[0072] 腳本集中化主要針對儀表板運行時的驅(qū)動腳本優(yōu)化和結(jié)構(gòu)化處理,以使其適應(yīng)我 們的模型。
[0073] 根據(jù)提供的基于JavaScript的模板文件,在儀表板運行時,用戶可以通過部件驅(qū) 動腳本的定義,按照既定規(guī)則生成統(tǒng)一的JavaScript文件,同時,可以向運行時的腳本管 理器注冊部件自身的事件,向運行時上下文注冊部件的自身信息(不包含事件以及驅(qū)動腳 本),有助于運行時上下文將事件驅(qū)動過程中的所有參數(shù)集中起來進行維護。
[0074] 圖5示出了根據(jù)本發(fā)明的實施例的事件驅(qū)動方法的腳本驅(qū)動流程圖。
[0075] 如圖5所示,根據(jù)本發(fā)明的實施例的事件驅(qū)動方法,包括以下步驟:
[0076] 步驟502,觸發(fā)部件的事件。
[0077] 步驟504,通知事件管理器事件被觸發(fā)。即在儀表板上的任一部件在檢測到自身的 事件被觸發(fā)時,向事件管理器發(fā)送事件觸發(fā)信息。
[0078] 步驟506,處理部件自身對事件的相應(yīng)行為。當事件管理器對外廣播觸發(fā)信息時, 會觸發(fā)接收該觸發(fā)信息的部件的onMessage方法,該部件根據(jù)觸發(fā)信息的來源和內(nèi)容,判 斷是否對該onMessage方法感興趣,如果感興趣,就執(zhí)行該onMessage方法中的腳本,否則 忽略該觸發(fā)信息。
[0079] 步驟508,事件管理器判斷是否發(fā)送觸發(fā)消息,當判斷結(jié)果為是時,進入步驟510, 否則,結(jié)束進程。廣播事件觸發(fā)信息前,需要對事件觸發(fā)信息的來源進行追蹤,判斷是否需 要對此事件觸發(fā)信息進行廣播,以避免發(fā)送循環(huán)消息導致系統(tǒng)假死。
[0080] 步驟510,事件管理轉(zhuǎn)發(fā)消息。
[0081] 步驟512,部件接收并處理消息。根據(jù)提供的基于JavaScript的模板文件,儀表 板在運行時,用戶可以通過部件驅(qū)動腳本的定義,按照既定規(guī)則生成統(tǒng)一的JavaScript文 件,同時,可以向運行時的腳本管理器注冊部件自身的事件。
[0082] 在該技術(shù)方案中,儀表板的運行時主要由運行時上下文、事件管理器、儀表板參數(shù) 表、運行時部件、腳本執(zhí)行引擎、腳本執(zhí)行器等組成,運行時上下文負責全局參數(shù)的管理以 及執(zhí)行環(huán)境的維護。事件管理器負責接收部件發(fā)送的消息并廣播接到的消息。腳本執(zhí)行引 擎以及腳本執(zhí)行器共同完成驅(qū)動腳本的執(zhí)行和環(huán)境調(diào)試。在整個運行時中,事件管理器充 當了消息總線的角色,當有部件的事件被觸發(fā)時(如按鈕點擊事件),事件管理器會響應(yīng)事 件并以廣播方式轉(zhuǎn)發(fā)消息,這樣,所有對該消息感興趣的部件,均可以收到該消息并作出快 速反應(yīng),大大提高了部件的靈活性。
[0083] 以上結(jié)合附圖詳細說明了本發(fā)明的技術(shù)方案,通過本發(fā)明的技術(shù)方案,可以使一 套驅(qū)動腳本適應(yīng)不同平臺的需求,由事件管理器統(tǒng)一調(diào)度事件,提高了腳本的可讀性和部 件的靈活性,降低了編寫和維護的成本和難度,使產(chǎn)品游刃有余地適應(yīng)不同業(yè)務(wù)場景和各 種復雜的業(yè)務(wù)需求。
[〇〇84] 以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技 術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修 改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
【權(quán)利要求】
1. 一種基于JavaScript的事件驅(qū)動方法,其特征在于,包括: 儀表板上的任一部件在檢測到自身的事件被觸發(fā)時,向事件管理器發(fā)送事件觸發(fā)信 息; 所述事件管理器廣播接收到的所述事件觸發(fā)信息; 所述儀表板上的任一部件以外的其他部件接收所述廣播的所述事件觸發(fā)信息,根據(jù)所 述事件觸發(fā)信息、所述事件的驅(qū)動腳本的定義和預設(shè)的JavaScript模版文件生成統(tǒng)一的 JavaScript腳本文件,并根據(jù)所述JavaScript腳本文件向腳本管理器注冊所述事件。
2. 根據(jù)權(quán)利要求1所述的事件驅(qū)動方法,其特征在于,包括: 所述事件管理器根據(jù)接收到的所述事件觸發(fā)信息的來源,判斷是否廣播所述事件觸發(fā) 信息。
3. 根據(jù)權(quán)利要求1所述的事件驅(qū)動方法,其特征在于,包括: 所述儀表板上的任一部件以外的其他部件接收所述事件觸發(fā)信息,并根據(jù)所述事件觸 發(fā)信息的來源和內(nèi)容,判斷是否所述事件觸發(fā)信息是否有效,以及 當判斷結(jié)果為是時,執(zhí)行所述事件觸發(fā)信息對應(yīng)的所述事件的驅(qū)動腳本,否則,不響應(yīng) 所述事件觸發(fā)信息。
4. 根據(jù)權(quán)利要求1至3中任一項所述的事件驅(qū)動方法,其特征在于,還包括: 向運行時上下文注冊被觸發(fā)所述事件的所述儀表板上的任一部件的信息。
5. 根據(jù)權(quán)利要求4所述的事件驅(qū)動方法,其特征在于,還包括: 管理事件驅(qū)動過程中的所有參數(shù),并維護運行環(huán)境。
6. -種基于JavaScript的事件驅(qū)動系統(tǒng),其特征在于,包括: 發(fā)送單元,用于在儀表板上的任一部件在檢測到自身的事件被觸發(fā)時,向事件管理器 發(fā)送事件觸發(fā)信息; 廣播單元,所述事件管理器廣播所述事件觸發(fā)信息; 執(zhí)行單元,所述儀表板上的任一部件以外的其他部件接收所述事件觸發(fā)信息,根據(jù)所 述事件觸發(fā)信息、所述事件的驅(qū)動腳本的定義和預設(shè)的JavaScript模版文件生成統(tǒng)一的 JavaScript腳本文件,并根據(jù)所述JavaScript腳本文件向腳本管理器注冊所述事件。
7. 根據(jù)權(quán)利要求6所述的事件驅(qū)動系統(tǒng),其特征在于,還包括: 判斷單元,所述事件管理器根據(jù)接收到的所述事件觸發(fā)信息的來源,判斷是否廣播所 述事件觸發(fā)信息。
8. 根據(jù)權(quán)利要求6所述的事件驅(qū)動系統(tǒng),其特征在于,所述執(zhí)行單元包括: 所述儀表板上的任一部件以外的其他部件根據(jù)接收到的所述事件觸發(fā)信息的來源和 內(nèi)容,判斷是否所述事件觸發(fā)信息是否有效,以及 當判斷結(jié)果為是時,執(zhí)行所述事件觸發(fā)信息對應(yīng)的所述事件的驅(qū)動腳本,否則,不響應(yīng) 所述事件觸發(fā)信息。
9. 根據(jù)權(quán)利要求6至8中任一項所述的事件驅(qū)動系統(tǒng),其特征在于,還包括: 注冊單元,用于向運行時上下文注冊被觸發(fā)所述事件的所述儀表板上的任一部件的信 息。
10. 根據(jù)權(quán)利要求9所述的事件驅(qū)動系統(tǒng),其特征在于,還包括: 維護單元,用于管理事件驅(qū)動過程中的所有參數(shù),并維護運行環(huán)境。
【文檔編號】G06F9/44GK104090760SQ201410318914
【公開日】2014年10月8日 申請日期:2014年7月4日 優(yōu)先權(quán)日:2014年7月4日
【發(fā)明者】王雨學, 張樂龍 申請人:用友軟件股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1