一種腳本語言擴展方法及事件總線架構的制作方法
【技術領域】
[0001]本發明涉及腳本語言技術領域,尤其涉及一種腳本語言擴展方法及事件總線架構。
【背景技術】
[0002]JavaScript(直譯式腳本語言)是一種基于對象和事件驅動并具有相對安全性的客戶端腳本語言,廣泛用于Web應用開發,常用來為網頁添加各式各樣的動態功能,為用戶提供更流暢美觀的瀏覽效果。
[0003]目前,針對JavaScript的開發都是基于過程的線性開發,一般不提供事件,也不提供插入擴展點的機制,如果需要事件時,一般采取復寫代碼或回調代碼的方式進行事件以及事件的擴展。
[0004]采用復寫代碼或回調代碼的方式進行事件以及事件的擴展,必然造成大量重復代碼,從而增加代碼量。
【發明內容】
[0005]為解決上述技術問題,本發明提供了一種腳本語言擴展方法,通過事件總線實現對事件的管理,并在事件中插入擴展handler,使得該事件不必大量復寫代碼,可減少代碼量。
[0006]本發明的技術方案如下:
[0007]—種腳本語言擴展方法,包括:事件,所述事件包括:固定handler處理機制和擴展handler,所述方法還包括:
[0008]事件總線接收事件注冊請求;
[0009]所述事件總線根據所述事件注冊請求對所述事件進行注冊,并對所述固定handler和所述擴展handler進行排序;
[0010]所述事件總線接收所述事件觸發指令;
[0011]所述事件總線根據所述事件觸發指令調用所述固定handler和/或所述擴展handler0
[0012]優選地,所述事件總線根據所述事件注冊請求對所述事件進行注冊:
[0013]所述事件總線根據所述事件注冊請求獲取所述事件的事件名稱、固定handler、擴展handler以及擴展handler的切入點;
[0014]所述事件總線對所述事件的事件名稱、固定handler、擴展handIer以及擴展handler的切入點進行注冊。
[0015]優選地,所述擴展handI er的切入點包括:
[0016]調用所述固定handler之前、調用所述固定handler中和調用所述固定handler之后中的一個或者多個。
[0017]優選地,所述事件總線對所述固定handler和所述擴展handler進行排序包括:
[0018]當所述擴展handler的切入點為調用所述固定handler之前時,則所述擴展handler在所述固定handler之前調用;
[0019]和/或
[0020]當所述擴展handler的切入點為調用所述固定handler中時,則所述擴展handler覆蓋所述固定hand I er調用;
[0021]和/或
[0022]當所述擴展handler的切入點為調用所述固定handler之后時,則所述擴展handler在所述固定handler之后調用。
[0023]—種事件總線架構,包括:事件,所述事件包括:固定handler處理機制和擴展handler,所述事件總線架構還包括:
[0024]第一接收單元,用于接收事件注冊請求;
[0025]注冊單元,用于根據所述第一接收單元接收的事件注冊請求對所述事件進行注
ΠΠ.冊;
[0026]排序單元,用于對所述固定handler和所述擴展handler進行排序;
[0027]第二接收單元,用于接收所述事件觸發指令;
[0028]調用單元,用于根據所述第二接收單元接收的事件觸發指令調用所述固定handler和/或所述擴展handler。
[0029]優選地,所述注冊單元包括:
[0030]獲取子單元,用于根據所述事件注冊請求獲取所述事件的事件名稱、固定hand I er、擴展hand I er以及擴展hand I er的切入點;
[0031 ]注冊子單元,用于對所述獲取子單元獲取的所述事件的事件名稱、固定handler、擴展hand Ier以及擴展hand Ier的切入點進行注冊。
[OO32 ]優選地,所述擴展hand I er的切入點包括:
[0033]調用所述固定hand Ier前、調用所述固定hand I er中和調用所述固定hand I er后中的一個或者多個。
[0034]優選地,所述排序單元包括:
[0035]第一排序子單元,用于當所述擴展handler的切入點為調用所述固定handler之前時,則所述擴展handler在所述固定handler之前調用;
[0036]第二排序子單元,當所述擴展handler的切入點為調用所述固定handler中時,貝Ij所述擴展handler覆蓋所述固定handler調用;
[0037]第三排序子單元,用于當所述擴展handler的切入點為調用所述固定handler之后時,則所述擴展hand I er在所述固定hand I er之后調用。
[0038]本發明實施例提供的技術方案中,通過事件總線對事件進行注冊,并通過事件總線對事件的固定handler和擴展handler進行排序,且在該事件被觸發時,通過事件總線按照排序調用固定handler和/或擴展handler,因此相對于現有技術,本發明實施例中,通過事件總線實現對事件的管理,并在事件中插入擴展handler,使得該事件不必大量復寫代碼,可減少代碼量。
【附圖說明】
[0039]圖1為本發明腳本語言擴展方法實施例的步驟流程圖;
[0040]圖2為本發明腳本語言擴展方法實施例中事件處理流程圖;
[0041 ]圖3為本發明事件總線架構實施例的單元框圖。
【具體實施方式】
[0042]本發明實施例提供了一種腳本語言擴展方法及事件總線架構,以下分別進行詳細說明。
[0043]下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
[0044]本發明的說明書和權利要求書及上述附圖中的術語“第一”、“第二”、“第三”“第四”等(如果存在)是用于區別類似的對象,而不必用于描述特定的順序或先后次序。應該理解這樣使用的數據在適當情況下可以互換,以便這里描述的實施例能夠以除了在這里圖示或描述的內容以外的順序實施。此外,術語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統、產品或設備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或對于這些過程、方法、產品或設備固有的其它步驟或單元。
[0045]請參閱圖1,本發明實施例中腳本語言擴展方法一個實施例包括:事件,該事件包括:固定handler處理機制和擴展handler,該方法還包括:
[0046]S110、事件總線接收事件注冊請求。
[0047]—般地,事件總線具有事件的發布、訂閱以及觸發機制。具體地,首先事件發布者Event PubIisher將事件Event發布到事件總線Event Bus上,然后由事件訂閱者EventSubscriber觸發該事件Event,最后由事件總線Event Bus調用該事件Event。
[0048]本發明實施例是基于JavaScript的開發,主要應用于WEB頁面。本發明實施例中,在WEB頁面初始化時,可以將需要擴展的事件注冊在事件總線上,再由事件總線進行調用。
[0049]SI 20、事件總線根據事件注冊請求對事件進行注冊,并對固定handler和擴展handler進行排序。
[0050]本發明實施例中,將插入腳本語言中的事件注冊在事件總線上,由事件總線統一管理,當該事件被觸發時,