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

應(yīng)用事件跟蹤的制作方法

文檔序號:11333683閱讀:239來源:國知局
應(yīng)用事件跟蹤的制造方法與工藝



背景技術(shù):

典型的基于web和/或移動的應(yīng)用提供了許多與用戶交互的方式。例如,用戶可以在網(wǎng)頁上選擇各種元素,例如搜索框、列表項、鏈接、圖像等。在一些情況下,應(yīng)用的創(chuàng)建者希望響應(yīng)于用戶操作來測量應(yīng)用的性能,例如通過確定完成給定的操作花費多長時間來測量應(yīng)用的性能。用戶采取的操作可能會生成由不同的應(yīng)用以不同的方式處理的事件,并且開發(fā)人員可以向復(fù)合事件序列的不同事件添加操作處理器。例如,用戶在觸摸屏上的顯示器上滑動手指可以生成包括諸如“觸摸開始”、“觸摸移動”和“觸摸結(jié)束”之類的事件的復(fù)合事件序列,而用鼠標(biāo)做同樣的操作產(chǎn)生諸如“鼠標(biāo)按下”、“鼠標(biāo)移動”和“鼠標(biāo)松開”之類的事件。在這種情況下,盡管存在不同的基礎(chǔ)事件,但是每個操作的性能度量可能會被合并。

附圖說明

在附圖中,相同的附圖標(biāo)記表示相同的部件或塊。以下的詳細(xì)描述參考附圖,其中:

圖1是與所公開的實施方式一致的應(yīng)用的示例;

圖2是與所公開的實施方式一致的用于應(yīng)用事件跟蹤的系統(tǒng)的框圖;

圖3是與公開的實施方式一致的示例應(yīng)用事件跟蹤設(shè)備的框圖;

圖4是與所公開的實施方式一致的用于應(yīng)用事件跟蹤的方法的實施例的流程圖。

具體實施方式

如上所述,用于web應(yīng)用的典型界面包括許多元素,諸如圖像、鏈接、菜單、文本描述等。這些元素通常與可以在響應(yīng)諸如通過輸入設(shè)備的選擇、敲擊觸摸屏、鼠標(biāo)移動、鍵盤命令等操作時由應(yīng)用程序所調(diào)用的事件監(jiān)聽器相關(guān)聯(lián)。因此,如下文詳細(xì)描述,各種示例實施方式涉及跟蹤在與各種元素相關(guān)聯(lián)的操作上發(fā)生的事件,評估與這些操作相關(guān)聯(lián)的度量,以及記錄用于性能評估和分析的度量。

在以下的描述中,引用了術(shù)語“機(jī)器可讀存儲介質(zhì)”。如本文所使用的,術(shù)語“機(jī)器可讀存儲介質(zhì)”是指存儲可執(zhí)行指令或其他數(shù)據(jù)的任何電子、磁、光或其它物理存儲設(shè)備(例如,硬盤驅(qū)動器、隨機(jī)存取存儲器、閃速存儲器等)。

現(xiàn)在參考附圖,圖1是與所公開的實施方式一致的應(yīng)用100的實施例的框圖。應(yīng)用100可以包括例如基于web和/或移動的應(yīng)用,譬如可以從諸如筆記本電腦、臺式計算機(jī)、平板電腦、移動電話、智能電話、游戲機(jī)等用戶設(shè)備訪問。應(yīng)用100可以由諸如通用和/或?qū)S糜嬎銠C(jī)、服務(wù)器、大型機(jī)、臺式機(jī)、筆記本電腦、平板電腦、智能電話、游戲機(jī)和/或任何能夠提供與本文中所描述的實施方式一致的計算能力的其它系統(tǒng)。

應(yīng)用100可以包括多個元素120(a)-(c),例如文本、圖像、超鏈接、視頻、菜單按鈕、表單等。元素120(a)-(c)可以包括用戶界面元素,應(yīng)用100的用戶可以與該用戶界面元素交互以在應(yīng)用100上執(zhí)行任務(wù)和/或命令。例如,元素120(a)-(c)可以包括與網(wǎng)頁上的表單相關(guān)聯(lián)的復(fù)選框元素。

用戶操作(例如,應(yīng)用100中的操作140)可以被轉(zhuǎn)換成可以通過諸如asp、java、objectivec和各種其他編程語言的代碼和/或腳本來操縱的事件。每當(dāng)用戶在用戶客戶端上發(fā)起操作(例如觸摸,滑動)時,可以觸發(fā)一個事件序列(例如,觸摸開始、點擊、觸摸結(jié)束),使得應(yīng)用100中的事件監(jiān)聽器可以處理該操作。

元素120(a)-(c)中的每一個可以包括多個事件監(jiān)聽器。例如,元素120(a)可以包括第一事件監(jiān)聽器125(a)、第二事件監(jiān)聽器125(b)和第三事件監(jiān)聽器125(c)。事件監(jiān)聽器可以包括程序化掛鉤,以允許諸如操作140的用戶輸入從操作環(huán)境傳遞到應(yīng)用100。

可以響應(yīng)于不同的操作來調(diào)用每個事件監(jiān)聽器125(a)、125(b)、125(c)。例如,事件監(jiān)聽器125(a)可以與對應(yīng)于觸摸元素120(a)的用戶操作的“觸摸開始”事件相關(guān)聯(lián)。事件監(jiān)聽器125(b)可以與對應(yīng)于在元素120(a)上拖動、滾動和/或滑動的用戶操作的“觸摸移動”事件相關(guān)聯(lián)。事件監(jiān)聽器125(c)可以與對應(yīng)于從元素120(a)提起的用戶操作(例如,提起他們的手指、指示筆、鼠標(biāo)指針等)的“觸摸結(jié)束”事件相關(guān)聯(lián)。

每個事件監(jiān)聽器125(a)、125(b)、125(c)可以包括一個處理器。例如,事件監(jiān)聽器125(a)可以包括第一默認(rèn)操作處理器130,事件監(jiān)聽器125(b)可以包括第二默認(rèn)操作處理器132,并且事件監(jiān)聽器125(c)可以包括非默認(rèn)操作處理器134。默認(rèn)操作處理器可以由應(yīng)用100的操作環(huán)境提供。在一些實施方式中,當(dāng)應(yīng)用100的開發(fā)者沒有重寫那些操作處理器時,將應(yīng)用100作為基于web的應(yīng)用進(jìn)行托管的web瀏覽器可以為各種用戶操作提供默認(rèn)操作處理器(例如,web瀏覽器的默認(rèn)行為)。例如,默認(rèn)操作處理器132可以通過突出顯示文本來處理用戶的滑動操作。在一些實施方式中,事件監(jiān)聽器可以與多個操作處理器相關(guān)聯(lián)。例如,事件監(jiān)聽器可以與默認(rèn)操作處理器(例如,由用于基于web的應(yīng)用的web瀏覽器提供的默認(rèn)行為)、有助于應(yīng)用事件跟蹤的所添加的虛擬處理器、以及為應(yīng)用提供功能的開發(fā)人員所添加的操作處理器相關(guān)聯(lián)。

操作處理器134可以包括與由應(yīng)用100的開發(fā)者定義的功能相關(guān)聯(lián)的非默認(rèn)操作處理器。例如,元素120(a)可以包括應(yīng)用100中的菜單命令;與元素120(a)相關(guān)聯(lián)的“觸摸結(jié)束”事件可以導(dǎo)致事件監(jiān)聽器125(c)調(diào)用操作處理器134而不是該事件的默認(rèn)操作處理器。例如,操作處理器134可以包括響應(yīng)于與元素120(a)相關(guān)聯(lián)的菜單命令的用戶選擇而執(zhí)行的功能,而不是與“觸摸結(jié)束”事件相關(guān)聯(lián)的默認(rèn)功能。

在一些實施方式中,基于與諸如操作處理器134之類的非默認(rèn)操作處理器的關(guān)聯(lián),事件監(jiān)聽器125(c)可以包括重要事件?;谂c默認(rèn)操作處理器的關(guān)聯(lián),事件監(jiān)聽器125(a)-(b)可以包括非重要事件。事件監(jiān)聽器125(a)-(c)可以在應(yīng)用100中注冊,以響應(yīng)于與其事件相關(guān)聯(lián)的操作被調(diào)用。

在一些實施方式中,事件監(jiān)聽器可能不與任何處理器(默認(rèn)或非默認(rèn))關(guān)聯(lián)。例如,元素120(b)可以包括第二多個事件監(jiān)聽器145(a)-(c)。當(dāng)由于應(yīng)用100的實施而發(fā)生相應(yīng)的事件時,因為沒有功能需要執(zhí)行,所以事件監(jiān)聽器145(a)-(b)可能不與操作處理器相關(guān)聯(lián)。然而,操作處理器150可以包括用于事件監(jiān)聽器145(c)的非默認(rèn)操作處理器,因此事件監(jiān)聽器145(c)可以在應(yīng)用100中注冊,以響應(yīng)于與其事件(例如,“觸摸結(jié)束”)相關(guān)聯(lián)的操作。

如上所述,可以在應(yīng)用100內(nèi)以不同的方式實現(xiàn)不同的元素。這可能導(dǎo)致不同的事件監(jiān)聽器被調(diào)用用于不同的操作,即使操作相似。例如,用戶在元素120(a)上的滑動操作可以導(dǎo)致事件監(jiān)聽器“觸摸開始”、“觸摸移動”、“觸摸取消”、“觸摸結(jié)束”被應(yīng)用100調(diào)用,而在元素120(b)上的相同操作僅導(dǎo)致用于“觸摸結(jié)束”的事件監(jiān)聽器被調(diào)用。

在一些實施方式中,在與元素相關(guān)聯(lián)的每個事件監(jiān)聽器中添加虛擬操作處理器可能會導(dǎo)致對某些和/或所有操作調(diào)用相同的事件監(jiān)聽器序列。例如,元素120(c)可以包括第三多個事件監(jiān)聽器160(a)-(c)。與元素120(a)-(b)一樣,只有一個事件監(jiān)聽器包括非默認(rèn)操作處理器,在該示例中,為事件監(jiān)聽器160(c)的操作處理器170。第一虛擬操作處理器172和第二虛擬操作處理器174可以分別與事件監(jiān)聽器160(a)和事件監(jiān)聽器160(b)相關(guān)聯(lián)。虛擬操作處理器172、174可以導(dǎo)致當(dāng)在元素120(c)上執(zhí)行諸如操作140的用戶操作時調(diào)用事件監(jiān)聽器160(a)-(b)。因此,與元素120(c)相關(guān)聯(lián)的每個用戶操作可能導(dǎo)致相同的事件序列,而不管哪個事件監(jiān)聽器實際上與用戶操作相關(guān)聯(lián)。例如,滑動和點擊操作都可能導(dǎo)致為所述操作生成事件序列“觸摸開始”、“觸摸移動”、“觸摸取消”、“觸摸結(jié)束”,即使滑動操作通??梢员灰龑?dǎo)到用于“觸摸移動”事件的事件監(jiān)聽器,并且點擊操作通常可以被引導(dǎo)到用于“觸摸結(jié)束”事件的事件監(jiān)聽器。

虛擬事件處理器172、174的插入可以通過在應(yīng)用100中注入代碼(例如,javascript、.net等)而在加載應(yīng)用100期間被執(zhí)行。所述注入可以確保虛擬操作處理器代碼可以在應(yīng)用100的邏輯之前執(zhí)行,使得由應(yīng)用100定義的任何事件處理器都可以檢查注入的代碼。

可以為預(yù)定義的事件(例如,“點擊”、“鼠標(biāo)按下”、“觸摸開始”、“觸摸移動”、“觸摸結(jié)束”、“觸摸取消”、“鼠標(biāo)松開”、“加載”、“鍵盤按下”、“鍵盤松開”)添加虛擬操作處理器。然后,每個用戶操作可以導(dǎo)致相同的完整的事件序列,一些包括虛擬操作處理器,并且一些包括重要的(例如應(yīng)用和/或業(yè)務(wù)邏輯)操作處理器。

每個用戶操作(例如操作140)可以導(dǎo)致每次觸發(fā)初始事件(例如,“觸摸開始”和/或“鼠標(biāo)按下”)時創(chuàng)建復(fù)合事件序列對象。隨后的事件可以與當(dāng)前事件序列相關(guān)聯(lián),直到事件序列關(guān)閉為止。事件序列可以通過空閑定時器的到期(例如,在可配置的時間量(例如500ms)內(nèi)未接收到新事件)和/或當(dāng)新的事件序列事件類型(例如,“觸摸開始”和/或“鼠標(biāo)按下”)被觸發(fā)時而被關(guān)閉。

在一些實施方式中,應(yīng)用100可以通過測量與操作140的執(zhí)行相關(guān)聯(lián)的性能度量來監(jiān)視用戶體驗。性能度量可以包括諸如完成操作所花費的時間量、用于執(zhí)行操作的資源量、操作產(chǎn)生的錯誤和/或異常的數(shù)量(如果有的話)等數(shù)據(jù)。然后,性能度量可以與復(fù)合事件序列相關(guān)聯(lián)以用于記錄目的。

圖2是與所公開的實施方式一致的用于應(yīng)用事件跟蹤的系統(tǒng)200的框圖。系統(tǒng)200可以包括計算設(shè)備205和顯示設(shè)備210。計算設(shè)備205可以包括例如通用和/或?qū)S糜嬎銠C(jī)、服務(wù)器、大型機(jī)、臺式機(jī)、筆記本電腦、平板電腦、智能電話、游戲機(jī)和/或能夠提供與本文中描述的實施方式一致的計算能力的任何其它系統(tǒng)。顯示設(shè)備210可以包括例如陰極射線管(crt)監(jiān)視器、液晶顯示器(lcd)屏幕、觸摸屏或使用另一種顯示技術(shù)實現(xiàn)的屏幕。然而,應(yīng)當(dāng)顯而易見的是,可以使用任何合適的顯示器。取決于系統(tǒng)200的配置,顯示設(shè)備可以在計算設(shè)備205內(nèi)部或外部。

計算設(shè)備205可以包括應(yīng)用引擎220和度量引擎225。應(yīng)用引擎220和度量引擎225可以各自包括例如存儲在機(jī)器可讀介質(zhì)中的可由處理器、邏輯電路或它們的組合執(zhí)行的指令。

顯示設(shè)備210可以顯示包括多個事件監(jiān)聽器270的應(yīng)用260。在一些實施方式中,操作280可以由與用戶和顯示設(shè)備210上的應(yīng)用260的界面之間的交互相關(guān)聯(lián)的應(yīng)用260接收。這樣的界面可以包括多個元素,諸如以上關(guān)于圖1描述的那些。

應(yīng)用引擎220可以識別與應(yīng)用210中的重要事件相關(guān)聯(lián)的事件監(jiān)聽器270中的至少一個,接收與應(yīng)用210的元素相關(guān)聯(lián)的操作280,生成包括與該操作相關(guān)聯(lián)的多個事件監(jiān)聽器270的復(fù)合事件序列,并且確定該復(fù)合事件序列是否與至少一個重要事件相關(guān)聯(lián)。

在一些實施方式中,基于web的應(yīng)用可以通過顯示設(shè)備210向用戶呈現(xiàn)若干可選元素。用戶可以使用鼠標(biāo)、觸控筆、手指、鍵盤和/或其他輸入與這些元素交互。例如,用戶可以滑動跨越其中一個元素,觸發(fā)“觸摸開始”、“觸摸移動”和“觸摸結(jié)束”事件,每個事件可以與事件監(jiān)聽器270相關(guān)聯(lián)。操作引擎220可以確定任何被觸發(fā)的事件是否包括重要事件,其中可能包括確定非默認(rèn)操作處理器是否已被添加到該事件的事件監(jiān)聽器。

度量引擎225可以響應(yīng)于應(yīng)用引擎220確定該復(fù)合事件序列與至少一個重要事件相關(guān)聯(lián),測量與接收到的操作相關(guān)聯(lián)的性能度量,并根據(jù)復(fù)合事件序列來創(chuàng)建包括性能度量的日志記錄。例如,度量引擎225可以測量完成所述操作所花費的時間量并將結(jié)果輸出到顯示設(shè)備210。

在一些實施方式中,應(yīng)用引擎220可以基于初始事件生成復(fù)合事件序列。例如,“觸摸開始”和/或“鼠標(biāo)按下”事件可以被配置作為序列中的初始事件??赡茉诓煌膽?yīng)用和實施方式中有所不同的其他事件也可以包括初始事件。初始事件的每個實例可以以信號通知應(yīng)用引擎220開始新的復(fù)合事件序列。

在一些實施方式中,應(yīng)用引擎220可以基于結(jié)束事件生成復(fù)合事件序列。例如,“觸摸結(jié)束”和/或“鼠標(biāo)松開”事件可以被配置作為序列中的結(jié)束事件。這樣的事件可以包括與用戶操作的典型事件序列相關(guān)聯(lián)的最后事件,因此可以用于以信號通知復(fù)合事件序列的關(guān)閉。

在一些實施方式中,應(yīng)用引擎220可以基于空閑定時器的到期來生成復(fù)合事件序列。例如,如果一段時間(例如,500ms)過后而沒有觸發(fā)任何新事件,則應(yīng)用引擎220可以關(guān)閉事件序列,使得隨后被觸發(fā)的事件可以與新的復(fù)合事件序列相關(guān)聯(lián)。

在一些實施方式中,應(yīng)用引擎220可以向與至少一個非重要事件相關(guān)聯(lián)的事件監(jiān)聽器添加虛擬操作處理器。例如,一些事件監(jiān)聽器270可以與默認(rèn)操作處理器相關(guān)聯(lián)和/或根本與操作處理器不相關(guān)聯(lián)。這樣的事件監(jiān)聽器可以包括非重要的事件監(jiān)聽器,而已經(jīng)被應(yīng)用260的開發(fā)者用功能邏輯重寫了操作處理器的事件監(jiān)聽器可以與重要的事件監(jiān)聽器相關(guān)聯(lián)。重要的事件監(jiān)聽器可以包括開發(fā)者感興趣的用于測量性能度量的那些事件監(jiān)聽器。

復(fù)合事件序列可以包括重要事件監(jiān)聽器和至少一個非重要事件監(jiān)聽器。添加到每個非重要事件監(jiān)聽器的虛擬處理器可以在每次接收用戶操作(例如操作280的)時,使得這些事件監(jiān)聽器被應(yīng)用260調(diào)用。如果沒有虛擬操作處理器,事件監(jiān)聽器可以被跳過,導(dǎo)致每次都有不同的事件序列。

雖然在圖2中描繪了一個計算設(shè)備205和一個顯示設(shè)備210,系統(tǒng)200的某些實施方式可以包括多于一個的計算設(shè)備205和一個顯示設(shè)備210。計算設(shè)備中的至少一個可以被使用并且被配置在例如至少一個服務(wù)器庫、計算機(jī)庫、數(shù)據(jù)中心和/或其他裝置中。例如,計算設(shè)備在一起可以包括云計算資源、網(wǎng)格計算資源和/或任何其他分布式計算裝置。這樣的計算設(shè)備可以位于單個設(shè)備中和/或可以分布在許多不同的地理位置之間。

圖3是與公開的實施方式一致的示例應(yīng)用事件跟蹤設(shè)備300的框圖。應(yīng)用事件跟蹤設(shè)備300可以包括處理器310和非暫時性機(jī)器可讀存儲介質(zhì)320。應(yīng)用事件跟蹤設(shè)備300可以包括計算設(shè)備,例如臺式計算機(jī)、筆記本電腦、手持式計算設(shè)備、移動電話等。處理器310可以是中央處理單元(cpu)、基于半導(dǎo)體的微處理器、或適用于檢索和執(zhí)行存儲在機(jī)器可讀存儲介質(zhì)320中的指令的任何其它硬件設(shè)備。特別地,處理器310可以獲取、解碼和執(zhí)行多個識別事件監(jiān)聽器指令330、添加虛擬操作處理器指令332、接收操作指令334、生成復(fù)合事件序列指令336、測量性能度量指令338和日志創(chuàng)建指令340,以實現(xiàn)以下詳細(xì)描述的功能。

可執(zhí)行指令(例如,諸如識別事件監(jiān)聽器指令330、添加虛擬操作處理器指令332、接收操作指令334、生成復(fù)合事件序列指令336、測量性能度量指令338和日志創(chuàng)建指令340)可以存儲在機(jī)器可讀存儲介質(zhì)320的任何部分和/或組件中。機(jī)器可讀存儲介質(zhì)320可以包括易失性和/或非易失性存儲器和數(shù)據(jù)存儲組件。易失性組件是在電源中斷時不保留數(shù)據(jù)值的組件。非易失性組件是在電源中斷時保留數(shù)據(jù)的組件。

機(jī)器可讀存儲介質(zhì)320可以包括例如隨機(jī)存取存儲器(ram)、只讀存儲器(rom)、硬盤驅(qū)動器、固態(tài)驅(qū)動器、usb閃存驅(qū)動器、通過存儲卡讀卡器訪問的存儲卡、通過相關(guān)的軟盤驅(qū)動器訪問的軟盤、通過光盤驅(qū)動器訪問的光盤、通過適當(dāng)磁帶驅(qū)動器訪問的磁帶和/或其他存儲器組件,和/或這些存儲器組件中任何兩個和/或多個的組合。此外,ram可以包括例如靜態(tài)隨機(jī)存取存儲器(sram)、動態(tài)隨機(jī)存取存儲器(dram)和/或磁隨機(jī)存取存儲器(mram)以及其他類似的設(shè)備。rom可以包括例如可編程只讀存儲器(prom)、可擦除可編程只讀存儲器(eprom)、電可擦除可編程只讀存儲器(eeprom)和/或其他類似的存儲器設(shè)備。

機(jī)器可讀存儲介質(zhì)320可以用可執(zhí)行指令進(jìn)行編碼,用于顯示使用戶能夠與諸如應(yīng)用100之類的應(yīng)用交互的用戶界面??蓤?zhí)行指令可以包括例如應(yīng)用事件跟蹤設(shè)備300的操作系統(tǒng)(os)的至少一部分、或者在操作系統(tǒng)的頂部上運行以呈現(xiàn)用戶界面的單獨的應(yīng)用。作為另一示例,可執(zhí)行指令可以被包括在web瀏覽器中,使得web瀏覽器實現(xiàn)在本文中詳細(xì)描述的界面。在一些實施例中,可執(zhí)行指令可以在由web瀏覽器解釋的基于web的腳本(例如javascript)中實現(xiàn)。

更具體地,機(jī)器可讀存儲介質(zhì)320可以用識別事件監(jiān)聽器指令330進(jìn)行編碼,以將多個事件監(jiān)聽器中的第一事件監(jiān)聽器識別為與應(yīng)用相關(guān)聯(lián)的重要事件監(jiān)聽器。例如,應(yīng)用100可以包括多個元素,事件監(jiān)聽器可用于其中,但是僅一些元素已經(jīng)注冊了操作處理器。事件監(jiān)聽器(例如“觸摸開始”、“觸摸移動”和“觸摸結(jié)束”)可用于應(yīng)用100的指定元素,但是只有“觸摸開始”可能已經(jīng)被注冊有非默認(rèn)(即應(yīng)用開發(fā)者定義的)操作處理器。因為操作處理器可以包括默認(rèn)應(yīng)用功能的重寫,所以用于該元素的“觸摸開始”事件的事件監(jiān)聽器可以被識別為重要的事件監(jiān)聽器。

機(jī)器可讀存儲介質(zhì)320可以進(jìn)一步用添加虛擬操作處理器指令332進(jìn)行編碼,以將虛擬操作處理器添加到多個事件監(jiān)聽器中的第二監(jiān)聽器,其中多個事件監(jiān)聽器中的第二事件監(jiān)聽器包含一個非重要的事件監(jiān)聽器。非重要的事件監(jiān)聽器可以包括與應(yīng)用100的元素相關(guān)聯(lián)的那些事件監(jiān)聽器,其不包括操作處理器和/或默認(rèn)操作處理器。例如,虛擬操作處理器可以被添加到簡單地退出而不執(zhí)行功能、執(zhí)行小操作并丟棄結(jié)果、和/或調(diào)用另一個事件監(jiān)聽器的事件監(jiān)聽器。將虛擬操作處理器添加到事件監(jiān)聽器可能會導(dǎo)致那些事件監(jiān)聽器在應(yīng)用中注冊。因此,當(dāng)與事件監(jiān)聽器相關(guān)聯(lián)的事件被用戶操作觸發(fā)時,可以對那些事件監(jiān)聽器進(jìn)行調(diào)用。

機(jī)器可讀存儲介質(zhì)320可以進(jìn)一步用接收操作指令334進(jìn)行編碼,以接收與第一事件監(jiān)聽器相關(guān)聯(lián)的操作。響應(yīng)于用戶與應(yīng)用100的界面的交互,操作140可以被應(yīng)用100接收。例如,用戶可以執(zhí)行跨元素120(a)-(c)中的一個的滑動操作。應(yīng)用100可以將用戶的滑動操作解釋為“觸摸開始”、“觸摸移動”和“觸摸結(jié)束”事件,并且調(diào)用與這些事件相關(guān)聯(lián)的事件監(jiān)聽器,該事件監(jiān)聽器已經(jīng)注冊為具有操作處理器來處理這些事件。

機(jī)器可讀存儲介質(zhì)320可以進(jìn)一步用生成復(fù)合事件序列指令336進(jìn)行編碼,以生成包括第一事件監(jiān)聽器和第二事件監(jiān)聽器的復(fù)合事件序列。例如,復(fù)合事件序列可以包括數(shù)據(jù)結(jié)構(gòu),該數(shù)據(jù)結(jié)構(gòu)包括響應(yīng)于操作140由被觸發(fā)的事件調(diào)用的每個事件監(jiān)聽器的有序列表。在上述示例中,與用戶的滑動操作相關(guān)聯(lián)的復(fù)合事件序列可以包括事件“觸摸開始”、“觸摸移動”和“觸摸結(jié)束”。

機(jī)器可讀存儲介質(zhì)320可以進(jìn)一步用測量性能度量指令338進(jìn)行編碼,以測量與該操作相關(guān)聯(lián)的性能度量。例如,與操作相關(guān)聯(lián)的所測量的性能度量可以包括完成所述操作所花費的時間量。

機(jī)器可讀存儲介質(zhì)320可以進(jìn)一步用日志創(chuàng)建指令340進(jìn)行編碼,以創(chuàng)建包括性能度量的日志記錄。在一些實施方式中,日志記錄可以與復(fù)合事件序列相關(guān)聯(lián)。例如,日志記錄可以被提交到日志數(shù)據(jù)庫以與其他測量度量進(jìn)行聚合。在一些實施方式中,日志創(chuàng)建指令340可以生成與應(yīng)用相關(guān)聯(lián)的性能報告,其中,所述性能報告合并了各自與復(fù)合事件序列相關(guān)聯(lián)的多個日志記錄。

在一些實施方式中,設(shè)備300可以接收與多個事件監(jiān)聽器中的第二事件監(jiān)聽器相關(guān)聯(lián)的第二操作,生成包括第一事件監(jiān)聽器和第二事件監(jiān)聽器的復(fù)合事件序列,測量與第二操作相關(guān)聯(lián)的第二性能度量,創(chuàng)建與復(fù)合事件序列相關(guān)聯(lián)的包括第二性能度量的第二日志記錄,其中所述第二日志記錄,并將第二日志記錄關(guān)聯(lián)到與復(fù)合事件序列相關(guān)聯(lián)的日志記錄。因為虛擬操作處理器已被添加到每個非重要事件監(jiān)聽器,所以這些關(guān)聯(lián)事件中的每一個將被觸發(fā)并被添加到復(fù)合事件序列中。這使得同一元素上的不同操作可以根據(jù)統(tǒng)一的復(fù)合事件序列被聚合。

圖4是與所公開的實施方式一致的用于應(yīng)用事件跟蹤的方法400的實施例的流程圖。雖然以下參照系統(tǒng)200的組件來描述方法400的執(zhí)行,但是也可以使用用于執(zhí)行方法400的其他合適的組件。方法400可以以存儲在機(jī)器可讀存儲介質(zhì)(諸如設(shè)備300的機(jī)器可讀存儲介質(zhì)320)上的可執(zhí)行指令的形式來實現(xiàn)。

方法400可以在框410中開始并且進(jìn)行到框420,在框420,系統(tǒng)200可以向與應(yīng)用相關(guān)聯(lián)的多個事件監(jiān)聽器中的每一個添加虛擬操作處理器。多個事件監(jiān)聽器中的每一個可以包括非默認(rèn)操作處理器和/或與應(yīng)用的操作環(huán)境(例如,web瀏覽器)的默認(rèn)行為相關(guān)聯(lián)。例如,虛擬操作處理器可以被添加到簡單地退出而不執(zhí)行功能、執(zhí)行小操作并丟棄結(jié)果、和/或調(diào)用另一個事件監(jiān)聽器的事件監(jiān)聽器。將虛擬操作處理器添加到事件監(jiān)聽器可能會導(dǎo)致這些事件監(jiān)聽器在應(yīng)用中被注冊。因此,當(dāng)與事件監(jiān)聽器相關(guān)聯(lián)的事件被用戶操作觸發(fā)時,可以對那些事件監(jiān)聽器進(jìn)行調(diào)用。

然后,方法400可以前進(jìn)到框430,在框430處,系統(tǒng)200可以響應(yīng)于接收到與應(yīng)用相關(guān)聯(lián)的第一用戶操作,生成包括至少一個第一事件監(jiān)聽器的復(fù)合事件序列。例如,響應(yīng)于用戶與應(yīng)用100的界面的交互,操作140可以被應(yīng)用100接收。例如,用戶可以執(zhí)行跨元素120(a)-(c)中的一個的滑動操作。應(yīng)用100可以將用戶的滑動操作解釋為“觸摸開始”、“觸摸移動”和“觸摸結(jié)束”事件,并且調(diào)用與這些事件相關(guān)聯(lián)的事件監(jiān)聽器,該事件監(jiān)聽器已經(jīng)注冊為具有操作處理器來處理這些事件。這些事件中的一個可以包括可以與若干不同用戶操作的開始相關(guān)聯(lián)的預(yù)定義的開始事件(例如,“觸摸開始”和/或“鼠標(biāo)按下”)。復(fù)合事件序列可以包括數(shù)據(jù)結(jié)構(gòu),該數(shù)據(jù)結(jié)構(gòu)包括響應(yīng)于操作140由被觸發(fā)的事件調(diào)用的每個事件監(jiān)聽器的有序列表。

方法400然后可以前進(jìn)到框435,在框435處,系統(tǒng)200可以基于至少一個第二事件監(jiān)聽器的虛擬操作處理器將多個事件監(jiān)聽器中的至少一個第二事件監(jiān)聽器添加到復(fù)合事件序列。例如,在框430處生成的復(fù)合事件序列可以包括預(yù)定義的開始事件“觸摸開始”;然后當(dāng)在框420處添加的虛擬操作處理器被應(yīng)用100調(diào)用時,下一個事件監(jiān)聽器“觸摸移動”可被添加到復(fù)合事件序列。

方法400然后可以前進(jìn)到框440,在框440處,系統(tǒng)200可為至少一個第一事件監(jiān)聽器和至少一個第二事件監(jiān)聽器測量各自的性能度量。在一些實施例中,所述各自的性能度量可以包括完成與復(fù)合事件序列中的每個事件監(jiān)聽器相關(guān)聯(lián)的操作處理器的時間。至少一個第一事件監(jiān)聽器和至少一個第二事件監(jiān)聽器。對于另一個示例,與事件監(jiān)聽器相關(guān)聯(lián)的所測量的性能度量可以包括執(zhí)行操作處理器所消耗的資源量(例如,處理時間、數(shù)據(jù)存儲等)。

然后,方法400可以前進(jìn)到框450,在框450處,系統(tǒng)200可以關(guān)閉復(fù)合事件序列。例如,系統(tǒng)200可以響應(yīng)于一個沒有觸發(fā)新事件的空閑定時器的到期時間而關(guān)閉復(fù)合事件序列。在一些實施方式中,系統(tǒng)200可以響應(yīng)于接收到觸發(fā)至少一個預(yù)定義的起始事件的第二用戶操作來關(guān)閉復(fù)合事件序列。例如,如果另一個“觸摸開始”事件被觸發(fā),則系統(tǒng)200可以關(guān)閉復(fù)合事件序列并生成新的復(fù)合事件序列。

然后,方法400可以前進(jìn)到框460,在框460處,系統(tǒng)200可以確定復(fù)合事件序列是否包括重要的事件監(jiān)聽器。例如,系統(tǒng)200可以通過確定事件監(jiān)聽器是否包括非默認(rèn)和非虛擬的操作處理器(即,應(yīng)用開發(fā)人員定義的操作處理器)來識別應(yīng)用100的重要事件監(jiān)聽器。

響應(yīng)于確定復(fù)合事件序列包括重要事件監(jiān)聽器,方法400可以前進(jìn)到框465,在框465處,系統(tǒng)200可以計算用戶操作的最終性能度量。例如,系統(tǒng)200可以根據(jù)復(fù)合事件序列中的每個事件監(jiān)聽器各自的性能度量來計算完成用戶操作的總時間。

方法400然后可以前進(jìn)到框470,在框470處,系統(tǒng)200可以創(chuàng)建包括最終性能度量的日志記錄,其中日志記錄與第一復(fù)合事件序列相關(guān)聯(lián)。例如,包括操作的標(biāo)識符、復(fù)合事件序列、操作時間、測量的性能度量和/或附加數(shù)據(jù)的日志記錄可以被提交到日志數(shù)據(jù)庫以與其他測量的度量進(jìn)行聚合。因為虛擬操作處理器已經(jīng)被添加到每個非重要事件監(jiān)聽器,所以那些關(guān)聯(lián)事件中的每一個可以被觸發(fā)并被添加到復(fù)合事件序列中。這使得同一元素上的不同操作可以根據(jù)統(tǒng)一的復(fù)合事件序列被聚合。

如果在步驟460,系統(tǒng)200確定復(fù)合事件序列不包括重要事件監(jiān)聽器,則方法400可以前進(jìn)到步驟475,在步驟475,系統(tǒng)200可以丟棄各自的性能度量。例如,用戶操作不觸發(fā)重要事件監(jiān)聽器的復(fù)合事件序列可以與其各自的性能度量一起被丟棄,而不創(chuàng)建日志記錄。方法400然后可以在框480處結(jié)束。

所公開的示例可以包括系統(tǒng)、設(shè)備、計算機(jī)可讀存儲介質(zhì)和用于漸進(jìn)緩沖器生成的方法。為便于說明,參照圖1至圖3所示的組件來描述某些示例。然而,所示組件的功能可能重疊,并且可以存在于更少或更多數(shù)量的元件和組件中。此外,所示元件的全部或部分功能可以共存或分布在若干地理分散的位置之間。此外,所公開的示例可以在各種環(huán)境中實現(xiàn),并且不限于所示示例。

另外,如在說明書和所附權(quán)利要求中所使用的,單數(shù)形式“一”,“一個”和“該”也包括復(fù)數(shù)形式,除非上下文另有指示。另外,盡管術(shù)語第一,第二等可以用于描述各種元件,但這些元素不應(yīng)該受這些術(shù)語的限制。相反,這些術(shù)語僅用于將一個元素與另一個元素區(qū)分開來

進(jìn)一步,結(jié)合圖1至圖4描述的操作順序是實例,而不旨在是限制性的??梢允褂妙~外的或更少的操作或操作的組合,或者可以在不脫離所公開的示例的范圍的情況下變化。因此,本公開僅提出了實施方式的可能示例,并且可以對所描述的示例進(jìn)行許多變化和修改。所有這些修改和變化旨在被包括在本公開的范圍內(nèi)并由所附權(quán)利要求保護(hù)。

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