国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種基于彈射器的事件調(diào)度方法及裝置與流程

      文檔序號(hào):11864390閱讀:336來源:國(guó)知局
      一種基于彈射器的事件調(diào)度方法及裝置與流程

      技術(shù)領(lǐng)域

      本發(fā)明涉及一種調(diào)度方法及裝置,屬于WEB信息處理領(lǐng)域,具體是涉及一種基于彈射器的事件調(diào)度方法及裝置。



      背景技術(shù):

      在前端javascript開發(fā)領(lǐng)域,閉包的開發(fā)模式能促進(jìn)功能的模塊化,并且降低模塊間的耦合性,避免全局污染。但是在閉包間的通信上,現(xiàn)有的開發(fā)模式往往需要明確到閉包所暴露的接口,導(dǎo)致閉包模塊在協(xié)作方面產(chǎn)生極大的耦合、提升了功能的復(fù)雜度。



      技術(shù)實(shí)現(xiàn)要素:

      針對(duì)現(xiàn)有技術(shù)的以上缺陷或改進(jìn)需求,本發(fā)明提供了一種基于彈射器的事件調(diào)度方法及裝置,其目的在于,解決并優(yōu)化前端開發(fā)中閉包間的通信所導(dǎo)致的閉包模塊在協(xié)作方面產(chǎn)生極大的耦合、提升了功能復(fù)雜度的技術(shù)問題。

      為了解決上述問題,根據(jù)本發(fā)明的一個(gè)方面,提供了一種基于彈射器的事件調(diào)度方法,包括:

      步驟1,初始化事件彈射器;

      步驟2,將用于實(shí)現(xiàn)自定義功能的事件注冊(cè)到所述事件彈射器中;

      步驟3,由事件彈射器接收外部程序的事件調(diào)用請(qǐng)求,并通過事件調(diào)用請(qǐng)求中傳遞的事件名稱查找并執(zhí)行事件彈射器中的已經(jīng)注冊(cè)事件。

      優(yōu)選的,上述的一種基于彈射器的事件調(diào)度方法,所述事件彈射器中包括:事件名稱,以及與事件名稱對(duì)應(yīng)的事件函數(shù)堆棧,其中:事件函數(shù)堆棧是由事件構(gòu)成的集合,并且事件函數(shù)堆棧按照事件的添加順序從前往后順序執(zhí)行所包含的事件。

      優(yōu)選的,上述的一種基于彈射器的事件調(diào)度方法,所述事件彈射器接收事件調(diào)用請(qǐng)求中傳遞的擴(kuò)展參數(shù),并在執(zhí)行所述事件時(shí),將擴(kuò)展參數(shù)傳遞至相應(yīng)的事件。

      優(yōu)選的,上述的一種基于彈射器的事件調(diào)度方法,所述事件是javascript函數(shù)。

      優(yōu)選的,上述的一種基于彈射器的事件調(diào)度方法,所述事件彈射器采用單例與工廠的混合模式。

      為了解決上述問題,根據(jù)本發(fā)明的另一個(gè)方面,提供了一種基于彈射器的事件調(diào)度裝置,包括:

      初始化模塊,初始化事件彈射器;

      注冊(cè)模塊,將用于實(shí)現(xiàn)自定義功能的事件注冊(cè)到所述事件彈射器中;

      調(diào)度模塊,由事件彈射器接收外部程序的事件調(diào)用請(qǐng)求,并通過事件調(diào)用請(qǐng)求中傳遞的事件名稱查找并執(zhí)行事件彈射器中的已經(jīng)注冊(cè)事件。

      優(yōu)選的,上述的一種基于彈射器的事件調(diào)度裝置,所述事件彈射器中包括:事件名稱,以及與事件名稱對(duì)應(yīng)的事件函數(shù)堆棧,其中:事件函數(shù)堆棧是由事件構(gòu)成的集合,并且事件函數(shù)堆棧按照事件的添加順序從前往后順序執(zhí)行所包含的事件。

      優(yōu)選的,上述的一種基于彈射器的事件調(diào)度裝置,所述事件彈射器接收事件調(diào)用請(qǐng)求中傳遞的擴(kuò)展參數(shù),并在執(zhí)行所述事件時(shí),將擴(kuò)展參數(shù)傳遞至相應(yīng)的事件。

      優(yōu)選的,上述的一種基于彈射器的事件調(diào)度裝置,所述事件是javascript函數(shù)。

      優(yōu)選的,上述的一種基于彈射器的事件調(diào)度裝置,所述事件彈射器采用單例與工廠的混合模式。

      總體而言,本發(fā)明所構(gòu)思的以上技術(shù)方案與現(xiàn)有技術(shù)相比,能夠利用事件彈射機(jī)制解決了javascript 閉包間的通信問題,降低了javascript 閉包間的耦合度,提升了代碼的復(fù)用率和擴(kuò)展性,降低了維護(hù)成本。

      附圖說明

      附圖1是本發(fā)明的邏輯示意圖。

      附圖2是本發(fā)明的事件執(zhí)行時(shí)的邏輯示意圖。

      附圖3是本發(fā)明的閉包與觀察者的合作運(yùn)行圖。

      具體實(shí)施方式

      下面通過實(shí)施例,并結(jié)合附圖,對(duì)本發(fā)明的技術(shù)方案作進(jìn)一步具體的說明。

      為了解決上述問題,根據(jù)本發(fā)明的一個(gè)方面,提供了一種基于彈射器的事件調(diào)度方法,包括:

      步驟1,初始化事件彈射器;

      步驟2,將用于實(shí)現(xiàn)自定義功能的事件注冊(cè)到所述事件彈射器中;

      步驟3,由事件彈射器接收外部程序的事件調(diào)用請(qǐng)求,并通過事件調(diào)用請(qǐng)求中傳遞的事件名稱查找并執(zhí)行事件彈射器中的已經(jīng)注冊(cè)事件。

      其中,所述事件彈射器中包括:事件名稱,以及與事件名稱對(duì)應(yīng)的事件函數(shù)堆棧,其中:事件函數(shù)堆棧是由事件構(gòu)成的集合,并且事件函數(shù)堆棧按照事件的添加順序從前往后順序執(zhí)行所包含的事件。

      其中,所述事件彈射器接收事件調(diào)用請(qǐng)求中傳遞的擴(kuò)展參數(shù),并在執(zhí)行所述事件時(shí),將擴(kuò)展參數(shù)傳遞至相應(yīng)的事件。

      其中,所述事件是javascript函數(shù),事件彈射器采用單例與工廠的混合模式。

      為了解決上述問題,根據(jù)本發(fā)明的另一個(gè)方面,提供了一種基于彈射器的事件調(diào)度裝置,包括:

      初始化模塊,初始化事件彈射器;

      注冊(cè)模塊,將用于實(shí)現(xiàn)自定義功能的事件注冊(cè)到所述事件彈射器中;

      調(diào)度模塊,由事件彈射器接收外部程序的事件調(diào)用請(qǐng)求,并通過事件調(diào)用請(qǐng)求中傳遞的事件名稱查找并執(zhí)行事件彈射器中的已經(jīng)注冊(cè)事件。

      其中,所述事件彈射器中包括:事件名稱,以及與事件名稱對(duì)應(yīng)的事件函數(shù)堆棧,其中:事件函數(shù)堆棧是由事件構(gòu)成的集合,并且事件函數(shù)堆棧按照事件的添加順序從前往后順序執(zhí)行所包含的事件。

      其中,所述事件彈射器接收事件調(diào)用請(qǐng)求中傳遞的擴(kuò)展參數(shù),并在執(zhí)行所述事件時(shí),將擴(kuò)展參數(shù)傳遞至相應(yīng)的事件。

      其中,所述事件是javascript函數(shù),所述事件彈射器采用單例與工廠的混合模式。

      實(shí)施例1

      如圖1所示,本實(shí)施例提供了一種前端觀察者方式的事件調(diào)度邏輯圖。圖中,觀察者的核心是一個(gè)“事件彈射器”,既事件集合。

      事件表示功能單元,在javascript 中是一個(gè)函數(shù)。

      事件彈射器本身既負(fù)責(zé)事件的錄入和管理,同時(shí)也負(fù)責(zé)事件的獲取和執(zhí)行。

      事件彈射器對(duì)應(yīng)多個(gè)事件,事件在事件彈射器的表現(xiàn)形式為:事件名稱、事件函數(shù)堆棧。事件函數(shù)堆棧的好處在于,同一個(gè)事件可以在執(zhí)行效果上被疊加,便于觀察者與實(shí)際場(chǎng)景解耦,需要注意的是堆棧是現(xiàn)進(jìn)先出的原則,既按照添加順序從前往后執(zhí)行。

      如圖2所示,外部通過調(diào)用觀察者,傳入一個(gè)事件名稱,觀察者根據(jù)事件名稱查找出事件堆棧并遍歷執(zhí)行。如果外部同時(shí)傳入了擴(kuò)展數(shù)據(jù),擴(kuò)展數(shù)據(jù)會(huì)在事件堆棧遍歷執(zhí)行的過程中傳遞給函數(shù)。

      閉包與觀察者的合作運(yùn)行如圖3所示。在觀察者模式下,摒棄了閉包舊的開發(fā)模式(閉包直接關(guān)聯(lián)),閉包只需要將事件在觀察者上注冊(cè),可以在任何時(shí)間、任意地方隨意調(diào)用。

      觀察者將閉包之間強(qiáng)行分隔開,閉包只需要提供規(guī)范的事件序列便可完成與其它閉包的協(xié)作。觀察者本身不對(duì)規(guī)范做約束,全靠開發(fā)者自己約束。

      為更加全面的支持開發(fā)場(chǎng)景,觀察者采用:?jiǎn)卫c工廠的混合模式,代碼示例如下:

      * 單例模式

      * 全局默認(rèn)監(jiān)聽者

      window.Observer.on(…)

      * 工廠模式

      * 特定場(chǎng)景返回新的實(shí)例,方便定制

      var myObserver = window.Observer.create();

      myObserver.on(…)

      本實(shí)施例描述的“觀察者”利用事件彈射機(jī)制解決了javascript 閉包間的通信問題。降低了javascript 閉包間的耦合度,提升了代碼的復(fù)用率和擴(kuò)展性,降低了維護(hù)成本。

      以上方法實(shí)施例和裝置實(shí)施例是一一對(duì)應(yīng)的,因此方法實(shí)施例的擴(kuò)展方式亦可用于裝置實(shí)施例。

      本文中所描述的具體實(shí)施例僅僅是對(duì)本發(fā)明精神作舉例說明。本發(fā)明所屬技術(shù)領(lǐng)域的技術(shù)人員可以對(duì)所描述的具體實(shí)施例做各種各樣的修改或補(bǔ)充或采用類似的方式替代,但并不會(huì)偏離本發(fā)明的精神或者超越所附權(quán)利要求書所定義的范圍。

      當(dāng)前第1頁1 2 3 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1