CN112883250A - 生成埋点标识的方法、装置和埋点的方法 - Google Patents
生成埋点标识的方法、装置和埋点的方法 Download PDFInfo
- Publication number
- CN112883250A CN112883250A CN201911201599.4A CN201911201599A CN112883250A CN 112883250 A CN112883250 A CN 112883250A CN 201911201599 A CN201911201599 A CN 201911201599A CN 112883250 A CN112883250 A CN 112883250A
- Authority
- CN
- China
- Prior art keywords
- current node
- object model
- document object
- identification information
- node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 141
- 230000008569 process Effects 0.000 claims abstract description 52
- 238000002372 labelling Methods 0.000 claims abstract description 50
- 230000001960 triggered effect Effects 0.000 claims abstract description 40
- 238000009877 rendering Methods 0.000 claims description 24
- 239000003550 marker Substances 0.000 claims 1
- 238000004364 calculation method Methods 0.000 abstract description 17
- 230000003111 delayed effect Effects 0.000 abstract description 9
- 230000006870 function Effects 0.000 description 28
- 230000015654 memory Effects 0.000 description 23
- 238000010586 diagram Methods 0.000 description 13
- 238000012545 processing Methods 0.000 description 12
- 238000013507 mapping Methods 0.000 description 10
- 230000006399 behavior Effects 0.000 description 9
- 238000011161 development Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 239000000470 constituent Substances 0.000 description 2
- 238000005034 decoration Methods 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000007405 data analysis Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000008451 emotion Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000005477 standard model Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
- Document Processing Apparatus (AREA)
Abstract
本发明公开了一种生成埋点标识的方法、装置和埋点的方法。其中,该方法包括:在虚拟文档对象模型树生成的过程中,判断当前节点的路径是否被标注,其中,虚拟文档对象模型树所包括的节点用于表示浏览器中的至少一个组件,至少一个组件用于生成显示界面中的控件;确定当前节点的路径未被标注,并对当前节点的路径信息进行标注,得到当前节点的标识信息,其中,当前节点的标识信息包括当前节点的路径信息。本发明解决了现有技术中通常基于XPath实现无痕埋点,使得事件被触发时才延着DOM树状结构计算节点的标识,导致操作延迟的技术问题。
Description
技术领域
本发明涉及计算机信息处理领域,具体而言,涉及一种生成埋点标识的方法、装置和埋点的方法。
背景技术
随著互联网行业对数据驱动运营的愈发重视,愈来愈多的公司、企业有埋点的需求。在用户行为分析的范畴上,最早的埋点基本上都是靠开发人员手动在业务代码里面添加,这种方式有两个缺点:一方面,业务代码中充斥着各种与业务无关的代码,随着时间的推移,代码可能会难以维护;另一方面,开发人员手动添加埋点代码,产生了无谓的工作量。因此,无痕埋点的技术应运而生。
目前市场上主要的无痕埋点技术是基于XPath实现的,如CSS选择器。然而,这种方法容易出现重复埋点的情形,不能确保数据的精确度,例如点击同一个层级底下多个相同的元素时,无法分辨出到底点击到了哪一个元素。
针对现有技术中通常基于XPath实现无痕埋点,导致控件的标识容易重复的技术问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种生成埋点标识的方法、装置和埋点的方法,以至少解决现有技术中通常基于XPath实现无痕埋点,使得事件被触发时才延着DOM树状结构计算节点的标识,导致操作延迟的技术问题。
根据本发明实施例的一个方面,提供了一种生成埋点标识的方法,包括:在虚拟文档对象模型树生成的过程中,判断当前节点的路径是否被标注,其中,虚拟文档对象模型树所包括的节点用于表示浏览器中的至少一个组件,至少一个组件用于生成显示界面中的控件;确定当前节点的路径未被标注,并对当前节点的路径信息进行标注,得到当前节点的标识信息,其中,当前节点的标识信息包括当前节点的路径信息。
根据本发明实施例的另一方面,还提供了一种埋点的方法,包括:检测目标控件是否被指定事件触发;确定目标控件被指定事件触发,并向用于埋点的后端服务器返回与目标控件相关联的节点的标识信息,其中,节点为真实文档对象模型树中的节点,真实文档对象模型树根据虚拟文档对象模型树中的属性列表生成,节点的标识信息在创建虚拟文档对象模型的过程中加入属性列表。
根据本发明实施例的另一方面,还提供了一种埋点的方法,包括:在虚拟文档对象模型生成的过程中,对当前节点进行标注,得到当前节点的标识信息,其中,当前节点的标识信息包括当前节点的路径信息;将当前节点的标识信息加入虚拟文档对象模型的属性列表,并根据虚拟文档模型构成虚拟文档对象模型树;根据虚拟文档模型的属性列表生成虚拟文档对象模型树对应的真实文档对象模型树,其中,真实文档对象模型树中的节点具有节点对应的标识信息。
根据本发明实施例的另一方面,还提供了一种生成埋点标识的装置,包括:判断模块,用于在虚拟文档对象模型树生成的过程中,判断当前节点的路径是否被标注,其中,虚拟文档对象模型树所包括的节点用于表示浏览器中的至少一个组件,至少一个组件用于生成显示界面中的控件;标注模块,用于确定当前节点的路径未被标注,并对当前节点的路径信息进行标注,得到当前节点的标识信息,其中,当前节点的标识信息包括当前节点的路径信息。
根据本发明实施例的另一方面,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述生成埋点标识的方法。
根据本发明实施例的另一方面,还提供了一种处理器,处理器用于运行程序,其中,程序运行时执行上述生成埋点标识的方法。
本申请实施例中,在虚拟文档对象模型树生成的过程中,判断当前节点的路径是否被标注,其中,虚拟文档对象模型树所包括的节点用于表示浏览器中的至少一个组件,至少一个组件用于生成显示界面中的控件;确定当前节点的路径未被标注,并对当前节点的路径信息进行标注,得到当前节点的标识信息,其中,当前节点的标识信息包括当前节点的路径信息。与现有技术相比,本申请中节点的标识信息在创建虚拟文档对象模型树时确定,从而主动的生成了节点的标识,使得后续需要利用这些路径信息时无需再做任何的运算即可得到路径信息,因此能够降低运行时的计算负担。还容易注意到,在控件被触发时,使用上述方案可以直接获取到被触发的控件的标识信息,即其所对应的节点的标识信息,避免了时间上的滞后,解决了现有技术中通常基于XPath实现无痕埋点,使得事件被触发时才延着DOM树状结构计算节点的标识,导致操作延迟的技术问题。而根据路径信息生成的标识信息便于开发人员理解,易于定位。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本申请实施例1的一种用于实现生成埋点标识的方法的计算机终端(或移动设备)的硬件结构框图;
图2是根据本申请实施例1的一种计算机终端(或移动设备)作为客户终端的示意图;
图3是根据本申请实施例1的一种可选的生成埋点标识的方法流程图;
图4是根据本申请实施例1的一种生成DOM树的示意图;
图5是根据本申请实施例2的一种可选的埋点的方法流程图;
图6是根据本申请实施例3的一种可选的生成埋点标识的装置示意图;
图7是根据本申请实施例4的一种可选的埋点的装置示意图;以及
图8是根据本申请实施例5的一种可选的生成埋点标识的方法的流程图;
图9是根据本申请实施例6的一种可选的生成埋点标识的装置的示意图;以及
图10是根据本申请实施例7的一种可选的计算机终端的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,在对本申请实施例进行描述的过程中出现的部分名词或术语适用于如下解释:
可扩展标记语言路径语言(XML Path Language,简称XPath):一种用来确定XML文档中某部分位置的语言。
埋点:记录用户行为以用于后续数据分析的方法,比如用户点击某个图标的次数、观看某个视频的时长、页面跳转等。
无痕埋点:一种不需要侵入业务代码即可完成埋点的技术;通过技术手段无差别地记录用户在前端页面上的行为。
文档对象模型(Document Object Model,简称DOM):万维网联盟组织推荐的处理可扩展标志语言的标准编程接口。在网页上,组织页面(或文档)的对象被组织在一个树形结构中,用来表示文档中对象的标准模型。
虚拟文档对象模型(virtual DOM,简称VDOM):一种将浏览器的DOM物件用单纯的javascript物件表达的资料结构,和其实际表达的DOM物件有着一对一的映射关系。
实施例1
根据本申请实施例,提供了一种生成埋点标识的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。图1示出了一种用于实现生成埋点标识的方法的计算机终端(或移动设备)的硬件结构框图。如图1所示,计算机终端10(或移动设备10)可以包括一个或多个(图中采用102a、102b,……,102n来示出)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输模块106。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
应当注意到的是上述一个或多个处理器102和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端10(或移动设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器104可用于存储应用软件的软件程序以及模块,如本申请实施例中的生成埋点标识的方法对应的程序指令/数据存储装置,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的生成埋点标识的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输模块106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输模块106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输模块106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算机终端10(或移动设备)的用户界面进行交互。
图1示出的硬件结构框图,不仅可以作为上述计算机终端10(或移动设备)的示例性框图,还可以作为服务器的示例性框图,一种可选实施例中,图2以框图示出了使用上述图1所示的计算机终端10(或移动设备)作为客户终端的一种实施例。如图2所示,计算机终端10(或移动设备)可以经由数据网络连接或电子连接到一个或多个服务器66。一种可选实施例中,上述计算机终端10(或移动设备)可以是移动计算设备等。数据网络连接可以是局域网连接、广域网连接、因特网连接,或其他类型的数据网络连接。计算机终端10(或移动设备)可以执行以连接到由一个服务器(例如安全服务器)或一组服务器执行的网络服务。网络服务器是基于网络的用户服务,诸如社交网络、云资源、电子邮件、在线支付或其他在线应用。
在上述运行环境下,本申请提供了如图3所示的生成埋点标识的方法。图3是根据本申请实施例1的一种可选的获取表情信息的方法流程图。如图3所示,该方法可以包括如下步骤:
步骤S302,在虚拟文档对象模型树生成的过程中,判断当前节点的路径是否被标注,其中,虚拟文档对象模型树所包括的节点用于表示浏览器中的至少一个组件,至少一个组件用于生成显示界面中的控件。
在虚拟文档对象模型树生成的过程中,可以是首先创建采用节点表示的虚拟文档对象模型,在根据虚拟文档对象模型构成虚拟文档对象模型树。上述步骤即在创建虚拟文档对象模型后,从根组件的render方法开始,对该模型是否标注进行判断,如果当前节点的路径尚未被标注,则对当前节点的路径信息进行标注,并依次呼叫其中的h函数(h函数用于生成虚拟文档对象模型树)。
一种可选方案中,上述虚拟文档对象模型树可以为虚拟文档对象模型的一种实现方式,虚拟文档对象模型可以是将浏览器的DOM组件用单纯的JavaScript组件表达的结构,和其实际表达的DOM物件有着一对一的映射关系。
虚拟文档对象模型(VDOM)是相对于文档对象模型(DOM)来说的,DOM模型用一个逻辑树来表示一个文档,树的每个分支的终点都是一个节点,每个节点都包含着对象。DOM可以用特定方式操作这个树,改变文档的结构、样式或者内容。而相对于频繁地去操作DOM引起的性能问题,VDOM很好地对DOM做了一层映射关系,将原来需要在DOM上进行的一系列操作,映射到VDOM进行操作。
需要说明的是,在DOM规范中,对于文档的表示方法并没有任何限制。DOM结构构成的基本要素是节点,而文档的结构就是由层次化的节点组成。在DOM中,如果以HTMLDocument为根节点,其余节点为子节点,组织成一个树的数据结构的表示就是DOM树。
一种可选方案中,上述组件可以用来生成显示界面中的控件,可以指任何可复用的对象或任何可与其它对象交互的代码体;上述控件可以用来前端表现或人机交互,属于前端的组成元素,例如文字输入框、下拉框、单选复选框、容器等。
步骤S304,确定当前节点的路径未被标注,并对当前节点的路径信息进行标注,得到当前节点的标识信息,其中,当前节点的标识信息包括当前节点的路径信息。
一种可选方案中,上述路径可以表示节点在虚拟文档对象模型树中的位置。
由于在构建虚拟文档对象树的过程中就确定了节点的标识,因此主动生成了节点的标识,使得后续需要利用这些路径信息时无需再做任何的运算即可得到路径信息,因此能够降低运行时的计算负担。
因此每个节点的标识信息必然不同,从而解决了基于XPath实现无痕埋点,导致控件的标识容易重复的技术问题。
容易注意到,基于XPath实现无痕埋点的方法是在控件被触发后,才沿着DOM树查找控件的标识,具有一定的延时,而本申请是在DOM树生成的过程中标注节点的标识信息,因此在控件被触发时,直接可以获取到被触发的控件的标识信息,即其所对应的节点的标识信息,避免了时间损耗。最后,由于是在生成VDOM树的过程中完成节点的标注,后续需要利用这些路径信息时无需再做任何的运算即可得到路径信息,因此能够降低运行时的计算负担。
在一个可选的实施例中,从根组件的渲染(render)方法开始,在虚拟文档对象模型树生成的过程中,判断当前节点的路径是否被标注,如果当前节点的路径未被标注,则对当前节点的路径信息进行标注。
本申请实施例中,在虚拟文档对象模型树生成的过程中,判断当前节点的路径是否被标注,其中,虚拟文档对象模型树所包括的节点用于表示浏览器中的至少一个组件,至少一个组件用于生成显示界面中的控件;确定当前节点的路径未被标注,并对当前节点的路径信息进行标注,得到当前节点的标识信息,其中,当前节点的标识信息包括当前节点的路径信息。与现有技术相比,本申请中节点的标识信息在创建虚拟文档对象模型树时确定,从而主动的生成了节点的标识,使得后续需要利用这些路径信息时无需再做任何的运算即可得到路径信息,因此能够降低运行时的计算负担。还容易注意到,在控件被触发时,使用上述方案可以直接获取到被触发的控件的标识信息,即其所对应的节点的标识信息,避免了时间上的滞后,解决了现有技术中通常基于XPath实现无痕埋点,使得事件被触发时才延着DOM树状结构计算节点的标识,导致操作延迟的技术问题。
可选地,步骤S304确定当前节点的路径未被标注,并对当前节点的路径信息进行标注,具体可以包括如下步骤:
步骤S3041,确定当前节点的路径信息和当前节点所表示的组件名称为当前节点的标识信息,其中,标识信息为字符串信息。
一种可选方案中,上述字符串信息可以包括路径信息和当前节点所表示的组件名称。
步骤S3042,根据标识信息对当前节点进行标注。
用XPath实现的标注在开发过程中难以调试,因为生成的标识信息是针对机器的,晦涩难懂,开发者很难通过其路径快速定位DOM元素;而本申请上述字符串信息中包含了节点所对应的组件的组件名称,因此在开发过程中开发人员可以快速的理解其意义以利于调试,进而解决了采用XPath实现无痕埋点时路径可读性较差,导致在开发调试时定位困难的问题。
可选地,当前节点用于表示浏览器的原生组件或浏览器的自定义组件。
一种可选方案中,上述原生组件可以为浏览器创建的,例如camera、map、video等;上述自定义组件可以为用户创建的。
在一个可选的实施例中,如果当前节点为浏览器的原生组件,步骤S3042根据标识信息对当前节点进行标注,可以包括步骤S30421,在当前节点上标注标识信息。
例如,如果原生组件为浏览器的“div,p”,则直接在虚拟文档对象模型树的当前节点上标注标识信息,可以为路径信息加上组件名称“ROOT,div”,其中,ROOT用于表示路径信息。
在一个另可选的实施例中,如果当前节点为浏览器的自定义组件,步骤S3042根据标识信息对当前节点进行标注,可以包括步骤S30422,在虚拟文档对象模型树的根节点上标注标识信息。
在上述方案中,在对自定义组件的节点进行标注时,需要返回根节点进行标注。例如,在虚拟文档对象模型树的根节点上标注标识信息,可以为路径信息加上此组件名称“ROOT,custom_component_name,同样的,ROOT用于表示路径信息。
需要说明的是,使用自定义组件能够提高最后标注出来的路径集合的样本大小。因为如果采用传统的XPath方法或者是利用DOM树来组成路径,路径中的元素属于html语言中允许元素的集合,而本申请因为加入了自定义组件,相当于在最后的路径中加上了一个维度,并且此维度的集合大小在理论上是无穷大的。
可选地,当虚拟文档对象模型树映射到真实的文档对象模型树时,将虚拟文档对象模型树中每个节点的标识信息存储至真实的文档对象模型树中对应的节点上。一种可选方案中,上述存储为节点的数据属性(data attribute)。
作为一种可选的实施例,映射方式可以是,在确定所述当前节点的路径未被标注,并对所述当前节点的路径信息进行标注之后,将所述当前节点的标识信息写入所述节点的属性列表中;根据多个节点构成虚拟文档对象模型树;基于所述节点的属性列表生成所述虚拟文档对象模型树对应的真实文档对象模型树,其中,所述真实文档对象模型树中的节点具有所述节点对应的标识信息。
上述节点的属性列表,即为节点所表示的虚拟文档对象模型树的属性列表。后续前端会根据VDOM的属性列表来生成真实DOM,此时真实DOM上就会带上路径标示。图4是根据本申请实施例1的一种生成DOM树的示意图,结合图4所示,首先从根部(root)开始创建VODM,创建VDOM的步骤即包括对VDOM进行属性解析,生成路径标示(即上述标识信息),将路径标示加入VDOM的属性列表中,生成VDOM并将VDOM输出。图4右侧是根据vdom生成VDOM树的过程,其中,如果是HTML的原生标签,则可以直接创建VDOM树,如果是用户自定义的标签(即前端的Component),其生成的VDOM会包含一个render方法,该方法提供了生成VDOM的函数(可以是react中的createElement函数,也可以是vue中的$createElement函数等),当执行render方法时,会生成该Component内部的VDOM树。以此往复,从而生成整个VDOM树,并且整个VDOM树均带有路径标示,最后由前端将这颗VDOM树渲染成带有路径标示的真实DOM树。
需要说明的是,基于VDOM的前端框架最大的特点就是组件化组合式开发,因此会有许多不同的自定义组件,自定义组件中都会有一个主要的render方法,此方法定义了此组件应该渲染出的VDOM;另外会提供基本的生成VDOM结构的h函数。一个render方法可以视为多个h函数的组合。生成VDOM的过程可以视为一个render函数树的深度优先调用过程。因此,在生成最终的VDOM树的过程中会经过一系列的递归调用。最后再通过比对的算法计算出最小需要更新的DOM结构。
如前所述,相对于频繁地去操作DOM引起的性能问题,VDOM很好地对DOM做了一层映射关系,将原来需要在DOM上进行的一系列操作,映射到VDOM进行操作。
此处需要说明的是,上述步骤中的标注方法在此不作限定,除上述方案中,将标示的路径映射到真实的DOM树上的方式之外,还可以用其他的方式利用这些标示好的路径。
可选地,在执行上述步骤S304在基于所述节点的属性列表生成所述虚拟文档对象模型树对应的真实文档对象模型树之后,上述方法还可以包括:
步骤S3061,调用真实文档对象模型树对应的渲染函数。
步骤S3062,基于渲染函数将当前节点所对应的控件渲染至显示界面。
可选地,控件与指定事件相关联,当控件被指定事件触发时,向用于埋点的后端服务器返回与控件相关联的节点的标识信息。
一种可选方案中,上述指定事件可以为鼠标单击、双击、滚轮滑动、点击按钮等用户对控件的操作行为。
在移动互联网时代,对于每个公司、企业来说,用户的行为数据非常重要。用户在页面停留多久、点击了什么按钮、浏览了什么内容、什么手机、什么网络环境、App什么版本等都需要清清楚楚,以方便为用户推荐合适的信息,或帮助开发人员分析线上问题,以改进相应的应用程序软件。
上述步骤中,用户对控件的操作,都会上传至用于埋点的后端服务器,方便对用户行为的分析计算。
本申请实施例中,在虚拟文档对象模型树生成的过程中,判断当前节点的路径是否被标注,其中,虚拟文档对象模型树所包括的节点用于表示浏览器中的至少一个组件,至少一个组件用于生成显示界面中的控件;确定当前节点的路径未被标注,并对当前节点的路径信息进行标注,得到当前节点的标识信息,其中,当前节点的标识信息包括当前节点的路径信息。上述方案通过VDOM技术与自定义组件的配合,在生成VDOM树的过程中标注浏览器上元素的唯一路径,不需要在浏览器交互时进行动态计算,能节省运行时的效能开销;在VDOM的节点上标注标识信息,极大地方便了后续路径的提取及使用,进而解决了现有技术中通常基于XPath实现无痕埋点,使得事件被触发时才延着DOM树状结构计算节点的标识,导致操作延迟的技术问题。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例的方法。
实施例2
根据本申请实施例,还提供了一种埋点的方法,如图5所示,该方法可以应用在前端VDOM库,从前端VDOM库的角度对本申请的实施过程进行详细描述,可以包括如下步骤:
步骤S502,检测目标控件是否被指定事件触发。
一种可选方案中,上述目标控件可以用来前端表现或人机交互,属于前端的组成元素,例如文字输入框、下拉框、单选复选框、容器等上述指定事件可以为鼠标单击、双击、滚轮滑动、点击哪一个按钮等用户对控件的操作行为。
步骤S504,确定目标控件被指定事件触发,并向用于埋点的后端服务器返回与目标控件相关联的节点的标识信息,其中,所述节点为真实文档对象模型树中的节点,所述真实文档对象模型树根据虚拟文档对象模型树中的属性列表生成,所述节点的标识信息在所述创建虚拟文档对象模型的过程中加入所述属性列表。
一种可选方案中,上述虚拟文档对象模型树可以为虚拟文档对象模型的一种实现方式,虚拟文档对象模型可以是将浏览器的DOM组件用单纯的JavaScript组件表达的结构,和其实际表达的DOM物件有着一对一的映射关系。
虚拟文档对象模型(VDOM)是相对于文档对象模型(DOM)来说的,DOM模型用一个逻辑树来表示一个文档,树的每个分支的终点都是一个节点,每个节点都包含着对象。DOM可以用特定方式操作这个树,改变文档的结构、样式或者内容。而相对于频繁地去操作DOM引起的性能问题,VDOM很好地对DOM做了一层映射关系,将原来需要在DOM上进行的一系列操作,映射到来操作VDOM。
需要说明的是,在DOM规范中,对于文档的表示方法并没有任何限制。DOM结构构成的基本要素是节点,而文档的结构就是由层次化的节点组成。在DOM中,如果以HTMLDocument为根节点,其余节点为子节点,组织成一个树的数据结构的表示就是DOM树。
在移动互联网时代,对于每个公司、企业来说,用户的行为数据非常重要。用户在页面停留多久、点击了什么按钮、浏览了什么内容、什么手机、什么网络环境、App什么版本等都需要清清楚楚,以方便为用户推荐合适的信息,或帮助开发人员分析线上问题,以改进相应的应用程序软件。
上述步骤中,用户对目标控件的操作,都会上传至用于埋点的后端服务器,方便对用户行为的分析计算。
可选地,在步骤S502检测目标控件是否被指定事件触发之前,上述方法还可以包括步骤S501,生成节点的标识信息。具体地,步骤S501进一步可以包括:
步骤S5012,在虚拟文档对象模型树生成的过程中,判断当前节点的路径是否被标注,其中,虚拟文档对象模型树所包括的节点用于表示浏览器中的至少一个组件,至少一个组件用于生成显示界面中的控件。
一种可选方案中,上述组件可以用来生成显示界面中的控件,可以指任何可复用的对象或任何可与其它对象交互的代码体;上述路径可以表示节点的位置。
步骤S5014,确定当前节点的路径未被标注,并对当前节点的路径信息进行标注,得到当前节点的标识信息,其中,当前节点的标识信息包括当前节点的路径信息。
本申请中节点的标识信息在创建虚拟文档对象模型树时确定,从而主动的生成了节点的标识,使得后续需要利用这些路径信息时无需再做任何的运算即可得到路径信息,因此能够降低运行时的计算负担因此解决了现有技术中通常基于XPath实现无痕埋点,使得事件被触发时才延着DOM树状结构计算节点的标识,导致操作延迟的技术问题。容易注意到,在控件被触发时,使用上述方案可以直接获取到被触发的控件的标识信息,即其所对应的节点的标识信息,避免了时间上的滞后。
步骤S5016,将所述当前节点的标识信息加入所述节点的属性列表中。
在上述步骤中,将当前节点的标识信息加入节点的属性列表中,从而能够使得生成的真实文档对象模型树中的每个节点均具有对应的标识信息。
容易注意到,基于XPath实现无痕埋点的方法是在控件被触发后,才沿着DOM树查找控件的标识,具有一定的延时,而本申请是在DOM树生成的过程中标注节点的标识信息,因此在控件被触发时,直接可以获取到被触发的控件的标识信息,即其所对应的节点的标识信息,避免了时间损耗。另外,用XPath实现的标注在开发过程中难以调试,因为生成的标识信息是针对机器的,晦涩难懂,开发者很难通过该路径快速定位DOM元素;而本申请根据路径信息生成标识信息,便于开发者定位。最后,由于是在生成VDOM树的过程中完成节点的标注,后续需要利用这些路径信息时无需再做任何的运算即可得到路径信息,降低运行时的计算负担。
可选地,步骤S5014确定当前节点的路径未被标注,并对当前节点的路径信息进行标注,可以包括如下步骤:
步骤S50141,确定当前节点的路径信息和当前节点所表示的组件名称为当前节点的标识信息,其中,标识信息为字符串信息。
一种可选方案中,上述字符串信息可以包括路径信息和当前节点所表示的组件名称。
由于上述字符串信息包含许多组件名称,即使组件是用户自定义的,而自定义组件的名称本来就是开发人员自定义的,因此在开发过程中开发人员可以快速的理解其意义以利于调试。
步骤S50142,根据标识信息对当前节点进行标注。
可选地,当前节点用于表示浏览器的原生组件或浏览器的自定义组件。
一种可选方案中,上述原生组件可以为客户端创建的,例如camera、map、video等;上述自定义组件可以为用户创建的。
在一个可选的实施例中,如果当前节点为浏览器的原生组件,根据标识信息对当前节点进行标注,包括:在当前节点上标注标识信息。
例如,如果原生组件为浏览器的“div,p”,则直接在虚拟文档对象模型树的当前节点上标注标识信息,可以为路径信息加上组件名称“ROOT,div”。
在一个可选的实施例中,如果当前节点为浏览器的自定义组件,根据标识信息对当前节点进行标注,包括:在虚拟文档对象模型树的根节点上标注标识信息。
由于原生组件的层级是最高的,所以,在对自定义组件的节点进行标注时,需要返回根节点进行标注。例如,在虚拟文档对象模型树的根节点上标注标识信息,可以为路径信息加上此组件名称“ROOT,custom_component_name。
需要说明的是,使用自定义组件能够提高最后标注出来的路径集合的样本大小。因为如果采用传统的XPath方法或者是利用DOM树来组成路径,路径中的元素属于html语言中允许元素的集合,而本申请因为加入了自定义组件,相当于在最后的路径中加上了一个维度,并且此维度的集合大小在理论上是无穷大的。
可选地,当虚拟文档对象模型树映射到真实的文档对象模型树时,将虚拟文档对象模型树中每个节点的标识信息存储至真实的文档对象模型树中对应的节点上。
一种可选方案中,上述存储形式可以为data attribute。
如前所述,相对于频繁地去操作DOM引起的性能问题,VDOM很好地对DOM做了一层映射关系,将原来需要在DOM上进行的一系列操作,映射到来操作VDOM。
经过前述步骤得到带有标识的完整的VDOM树时,需要将其映射到真实的DOM树结构上,将VDOM树中所有节点的标识信息以各种形式存储于DOM树对应的节点上。
此处需要说明的是,上述步骤中的标注方法在此不作限定,比如说不一定要将标示的路径映射到真实的DOM树上,可以用其他的方式利用这些标示好的路径。
可选地,在步骤S5014确定当前节点的路径未被标注,并对当前节点的路径信息进行标注之后,上述方法还可以包括如下步骤:
步骤S50141,调用当前节点对应的渲染函数。
一种可选方案中,上述渲染函数可以是react中的createElement函数,也可以是vue中的$createElement函数,本申请中皆称为h函数。
步骤S50142,基于渲染函数将当前节点所对应的控件渲染至显示界面。
需要说明的是,基于VDOM的前端框架最大的特点就是组件化组合式开发,因此会有许多不同的自定义组件,自定义组件中都会有一个主要的render方法,此方法定义了此组件应该渲染出的VDOM;另外会提供基本的生成VDOM结构的h函数。一个render方法可以视为多个h函数的组合。生成VDOM的过程可以视为一个render函数树的深度优先调用过程。因此,在生成最终的VDOM树的过程中会经过一系列的递归调用。最后再通过比对的算法计算出最小需要更新的DOM结构。
上述步骤中,从根组件的render方法开始,如果当前节点的路径尚未被标注,则对当前节点的路径信息进行标注,依次呼叫其中的h函数。
需要说明的是,本实施例的可选或优选实施方式可以参见实施例1中的相关描述,但不仅限于实施例1所公开的内容,在此不再赘述。
此处需要说明的是,本申请上述实施例二中涉及到优选实施方案与实施例一提供的方案以及应用场景实施过程相同,但不限于实施例一所提供的方案。
实施例3
根据本申请实施例,还提供了一种生成埋点标识的装置,如图6所示,该装置600包括:判断模块602和标注模块604。
其中,判断模块602,用于在虚拟文档对象模型树生成的过程中,判断当前节点的路径是否被标注,其中,虚拟文档对象模型树所包括的节点用于表示浏览器中的至少一个组件,至少一个组件用于生成显示界面中的控件;标注模块604,用于确定当前节点的路径未被标注,并对当前节点的路径信息进行标注,得到当前节点的标识信息,其中,当前节点的标识信息包括当前节点的路径信息。
可选地,标注模块可以包括:确定模块,用于确定当前节点的路径信息和当前节点所表示的组件名称为当前节点的标识信息,其中,标识信息为字符串信息;标注子模块,用于根据标识信息对当前节点进行标注。
可选地,当前节点用于表示浏览器的原生组件或浏览器的自定义组件。
可选地,标注子模块可以包括第一标注子模块,用于如果当前节点为浏览器的原生组件,在当前节点上标注标识信息。
可选地,标注子模块可以包括第二标注子模块,用于如果当前节点为浏览器的自定义组件,在虚拟文档对象模型树的根节点上标注标识信息。
可选地,上述装置还包括:第一写入模块,用于在确定所述当前节点的路径未被标注,并对所述当前节点的路径信息进行标注之后,将所述当前节点的标识信息写入所述节点的属性列表中;构成模块,用于根据多个节点构成虚拟文档对象模型树;生成模块,用于基于所述节点的属性列表生成所述虚拟文档对象模型树对应的真实文档对象模型树,其中,所述真实文档对象模型树中的节点具有所述节点对应的标识信息。
可选地,上述装置还包括:调用模块,用于在基于所述节点的属性列表生成所述虚拟文档对象模型树对应的真实文档对象模型树之后,调用真实文档对象模型树对应的渲染函数;渲染模块,用于基于渲染函数将真实文档对象模型树所对应的控件渲染至显示界面。
可选地,控件与指定事件相关联,上述装置还可以包括:返回模块,用于当控件被指定事件触发时,向用于埋点的后端服务器返回与控件相关联的节点的标识信息。
此处需要说明的是,上述判断模块602和标注模块604对应于实施例1中的步骤S302至步骤S304,两个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例1提供的计算机终端10中。
实施例4
根据本申请实施例,还提供了一种埋点的装置,如图7所示,该装置700包括:检测模块702和返回模块704。
其中,检测模块702,用于检测目标控件是否被指定事件触发;返回模块704,用于确定目标控件被指定事件触发,并向用于埋点的后端服务器返回与目标控件相关联的节点的标识信息,其中,所述节点为真实文档对象模型树中的节点,所述真实文档对象模型树根据虚拟文档对象模型树中的属性列表生成,所述节点的标识信息在所述创建虚拟文档对象模型的过程中加入所述属性列表。
可选地,上述装置还可以包括生成模块,用于在检测目标控件是否被指定事件触发之前,生成节点的标识信息。具体地,生成模块可以包括:判断模块,用于在虚拟文档对象模型树生成的过程中,判断当前节点的路径是否被标注,其中,虚拟文档对象模型树所包括的节点用于表示浏览器中的至少一个组件,至少一个组件用于生成显示界面中的控件;标注模块,用于确定当前节点的路径未被标注,并对当前节点的路径信息进行标注,得到当前节点的标识信息,其中,当前节点的标识信息包括当前节点的路径信息;第二写入模块,用于将所述当前节点的标识信息加入所述节点的属性列表中。
可选地,标注模块可以包括:确定模块,用于确定当前节点的路径信息和当前节点所表示的组件名称为当前节点的标识信息,其中,标识信息为字符串信息;标注子模块,用于根据标识信息对当前节点进行标注。
可选地,当前节点用于表示浏览器的原生组件或浏览器的自定义组件。
可选地,标注子模块可以包括第一标注子模块,用于如果当前节点为浏览器的原生组件,在当前节点上标注标识信息。
可选地,标注子模块可以包括第二标注子模块,用于如果当前节点为浏览器的自定义组件,在虚拟文档对象模型树的根节点上标注标识信息。
可选地,当虚拟文档对象模型树映射到真实的文档对象模型树时,将虚拟文档对象模型树中每个节点的标识信息存储至真实的文档对象模型树中对应的节点上。
可选地,上述装置还包括:调用模块,用于在确定当前节点的路径未被标注,并对当前节点的路径信息进行标注之后,调用当前节点对应的渲染函数;渲染模块,用于基于渲染函数将当前节点所对应的控件渲染至显示界面。
此处需要说明的是,上述检测模块702和返回模块704对应于实施例2中的步骤S502至步骤S504,两个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例2所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例1提供的计算机终端10中。
实施例5
根据本申请实施例,还提供了一种埋点的方法,如图8所示,该方法包括如下步骤:
步骤S81,在虚拟文档对象模型生成的过程中,对当前节点进行标注,得到所述当前节点的标识信息,其中,所述当前节点的标识信息包括所述当前节点的路径信息。
在虚拟文档对象模型树生成的过程中,可以是首先创建采用节点表示的虚拟文档对象模型,在根据虚拟文档对象模型构成虚拟文档对象模型树。上述步骤即在创建虚拟文档对象模型后,从根组件的render方法开始,对该模型是否标注进行判断,如果当前节点的路径尚未被标注,则对当前节点的路径信息进行标注,并依次呼叫其中的h函数(h函数用于生成虚拟文档对象模型树)。
一种可选方案中,上述虚拟文档对象模型树可以为虚拟文档对象模型的一种实现方式,虚拟文档对象模型可以是将浏览器的DOM组件用单纯的JavaScript组件表达的结构,和其实际表达的DOM物件有着一对一的映射关系。
步骤S83,将所述当前节点的标识信息加入所述虚拟文档对象模型的属性列表,并根据所述虚拟文档模型构成虚拟文档对象模型树。
上述节点的属性列表,即为节点所表示的虚拟文档对象模型树的属性列表。后续前端会根据VDOM的属性列表来生成真实DOM,此时真实DOM上就会带上路径标示。图4是根据本申请实施例1的一种生成DOM树的示意图,结合图4所示,首先从根部(root)开始创建VODM,创建VDOM的步骤即包括对VDOM进行属性解析,生成路径标示(即上述标识信息),将路径标示加入VDOM的属性列表中,生成VDOM并将VDOM输出。
步骤S85,根据所述虚拟文档模型的属性列表生成所述虚拟文档对象模型树对应的真实文档对象模型树,其中,所述真实文档对象模型树中的节点具有所述节点对应的标识信息。
仍结合图4所示,右侧是根据vdom生成VDOM树的过程,其中,如果是HTML的原生标签,则可以直接创建VDOM树,如果是用户自定义的标签(即前端的Component),其生成的VDOM会包含一个render方法,该方法提供了生成VDOM的函数(可以是react中的createElement函数,也可以是vue中的$createElement函数等),当执行render方法时,会生成该Component内部的VDOM树。以此往复,从而生成整个VDOM树,并且整个VDOM树均带有路径标示,最后由前端将这颗VDOM树渲染成带有路径标示的真实DOM树。
本申请实施例中,在虚拟文档对象模型生成的过程中对当前节点进行标注,得到所述当前节点的标识信息,将所述当前节点的标识信息加入所述虚拟文档对象模型的属性列表,并根据所述虚拟文档模型构成虚拟文档对象模型树;根据所述虚拟文档模型的属性列表生成所述虚拟文档对象模型树对应的真实文档对象模型树,从而使得真实文档对象模型树中的节点具有所述节点对应的标识信息。与现有技术相比,本申请中节点的标识信息在创建虚拟文档对象模型树时确定,从而主动的生成了节点的标识,使得后续需要利用这些路径信息时无需再做任何的运算即可得到路径信息,因此能够降低运行时的计算负担因此解决了现有技术中通常基于XPath实现无痕埋点,使得事件被触发时才延着DOM树状结构计算节点的标识,导致操作延迟的技术问题。容易注意到,在控件被触发时,使用上述方案可以直接获取到被触发的控件的标识信息,即其所对应的节点的标识信息,避免了时间上的滞后。
实施例6
根据本申请实施例,还提供了一种埋点的装置,如图9所示,该装置900包括:
标注模块902,在虚拟文档对象模型生成的过程中,对当前节点进行标注,得到所述当前节点的标识信息,其中,所述当前节点的标识信息包括所述当前节点的路径信息。
加入模块904,用于将所述当前节点的标识信息加入所述虚拟文档对象模型的属性列表,并根据所述虚拟文档模型构成虚拟文档对象模型树。
生成模块906,用于根据所述虚拟文档模型的属性列表生成所述虚拟文档对象模型树对应的真实文档对象模型树,其中,所述真实文档对象模型树中的节点具有所述节点对应的标识信息。
此处需要说明的是,上述标注模块902、加入模块904和生成模块906对应于实施例5中的步骤S81至步骤S85,两个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例2所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例1提供的计算机终端10中。
实施例7
本申请的实施例可以提供一种计算机终端,该计算机终端可以是计算机终端群中的任意一个计算机终端设备。可选地,在本实施例中,上述计算机终端也可以替换为移动终端等终端设备。
可选地,在本实施例中,上述计算机终端可以位于计算机网络的多个网络设备中的至少一个网络设备。
在本实施例中,上述计算机终端可以执行应用程序的生成埋点标识的方法中以下步骤的程序代码:在虚拟文档对象模型树生成的过程中,判断当前节点的路径是否被标注,其中,虚拟文档对象模型树所包括的节点用于表示浏览器中的至少一个组件,至少一个组件用于生成显示界面中的控件;确定当前节点的路径未被标注,并对当前节点的路径信息进行标注,得到当前节点的标识信息,其中,当前节点的标识信息包括当前节点的路径信息。
可选地,图10是根据本申请实施例的一种计算机终端的结构框图。如图10所示,该计算机终端A可以包括:一个或多个(图中仅示出一个)处理器102以及存储器104。
其中,存储器可用于存储软件程序以及模块,如本申请实施例中的生成埋点标识的方法和装置对应的程序指令/模块,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述生成埋点标识的方法。存储器可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端A。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
处理器可以通过传输模块调用存储器存储的信息及应用程序,以执行下述步骤:在虚拟文档对象模型树生成的过程中,判断当前节点的路径是否被标注,其中,虚拟文档对象模型树所包括的节点用于表示浏览器中的至少一个组件,至少一个组件用于生成显示界面中的控件;确定当前节点的路径未被标注,并对当前节点的路径信息进行标注,得到当前节点的标识信息,其中,当前节点的标识信息包括当前节点的路径信息。
可选地,上述处理器还可以执行如下步骤的程序代码:确定当前节点的路径未被标注,并对当前节点的路径信息进行标注,包括:确定当前节点的路径信息和当前节点所表示的组件名称为当前节点的标识信息,其中,标识信息为字符串信息;根据标识信息对当前节点进行标注。
可选地,上述处理器还可以执行如下步骤的程序代码:当前节点用于表示浏览器的原生组件或浏览器的自定义组件。
可选地,上述处理器还可以执行如下步骤的程序代码:当前节点为浏览器的原生组件,根据标识信息对当前节点进行标注,包括:在当前节点上标注标识信息。
可选地,上述处理器还可以执行如下步骤的程序代码:当前节点为浏览器的自定义组件,根据标识信息对当前节点进行标注,包括:在虚拟文档对象模型树的根节点上标注标识信息。
可选地,上述处理器还可以执行如下步骤的程序代码:在确定所述当前节点的路径未被标注,并对所述当前节点的路径信息进行标注之后,将所述当前节点的标识信息写入所述节点的属性列表中;根据多个节点构成虚拟文档对象模型树;基于所述节点的属性列表生成所述虚拟文档对象模型树对应的真实文档对象模型树,其中,所述真实文档对象模型树中的节点具有所述节点对应的标识信息。
可选地,上述处理器还可以执行如下步骤的程序代码:在基于所述节点的属性列表生成所述虚拟文档对象模型树对应的真实文档对象模型树之后,调用真实文档对象模型树对应的渲染函数;基于渲染函数将真实文档对象模型树所对应的控件渲染至显示界面。
可选地,上述处理器还可以执行如下步骤的程序代码:控件与指定事件相关联,当控件被指定事件触发时,向用于埋点的后端服务器返回与控件相关联的节点的标识信息。
本领域普通技术人员可以理解,图10所示的结构仅为示意,计算机终端也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌声电脑以及移动互联网设备(MobileInternet Devices,MID)、PAD等终端设备。图10并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图10中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图10所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
实施例8
本申请的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例一所提供的生成埋点标识的方法或实施例二所提供的埋点方法所执行的程序代码。
可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:在虚拟文档对象模型树生成的过程中,判断当前节点的路径是否被标注,其中,虚拟文档对象模型树所包括的节点用于表示浏览器中的至少一个组件,至少一个组件用于生成显示界面中的控件;确定当前节点的路径未被标注,并对当前节点的路径信息进行标注,得到当前节点的标识信息,其中,当前节点的标识信息包括当前节点的路径信息。
在本申请实施例中,通过运行存储介质中保存的程序代码,在虚拟文档对象模型树生成的过程中,判断当前节点的路径是否被标注,其中,虚拟文档对象模型树所包括的节点用于表示浏览器中的至少一个组件,至少一个组件用于生成显示界面中的控件;确定当前节点的路径未被标注,并对当前节点的路径信息进行标注,得到当前节点的标识信息,其中,当前节点的标识信息包括当前节点的路径信息。与现有技术相比,本申请中节点的标识信息在创建虚拟文档对象模型树时确定,从而主动的生成了节点的标识,使得后续需要利用这些路径信息时无需再做任何的运算即可得到路径信息,因此能够降低运行时的计算负担。还容易注意到,在控件被触发时,使用上述方案可以直接获取到被触发的控件的标识信息,即其所对应的节点的标识信息,避免了时间上的滞后,解决了现有技术中通常基于XPath实现无痕埋点,使得事件被触发时才延着DOM树状结构计算节点的标识,导致操作延迟的技术问题。
实施例9
根据本申请实施例,还提供了一种生成埋点标识的系统,该系统包括:
处理器;以及
存储器,与处理器连接,用于为处理器提供处理以下处理步骤的指令:在虚拟文档对象模型树生成的过程中,判断当前节点的路径是否被标注,其中,虚拟文档对象模型树所包括的节点用于表示浏览器中的至少一个组件,至少一个组件用于生成显示界面中的控件;确定当前节点的路径未被标注,并对当前节点的路径信息进行标注,得到当前节点的标识信息,其中,当前节点的标识信息包括当前节点的路径信息。
需要说明的是,本实施例的可选或优选实施方式可以参见实施例1中的相关描述,在此不再赘述。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (14)
1.一种生成埋点标识的方法,其特征在于,包括:
在虚拟文档对象模型树生成的过程中,判断当前节点的路径是否被标注,其中,所述虚拟文档对象模型树所包括的节点用于表示浏览器中的至少一个组件,所述至少一个组件用于生成显示界面中的控件;
确定所述当前节点的路径未被标注,并对所述当前节点的路径信息进行标注,得到所述当前节点的标识信息,其中,所述当前节点的标识信息包括所述当前节点的路径信息。
2.根据权利要求1所述的方法,其特征在于,确定所述当前节点的路径未被标注,并对所述当前节点的路径信息进行标注,包括:
确定所述当前节点的路径信息和所述当前节点所表示的组件名称为所述当前节点的标识信息,其中,所述标识信息为字符串信息;
根据所述标识信息对所述当前节点进行标注。
3.根据权利要求1或2所述的方法,其特征在于,所述当前节点用于表示所述浏览器的原生组件或所述浏览器的自定义组件。
4.根据权利要求3所述的方法,其特征在于,所述当前节点为所述浏览器的原生组件,根据所述标识信息对所述当前节点进行标注,包括:在所述当前节点上标注所述标识信息。
5.根据权利要求3所述的方法,其特征在于,所述当前节点为所述浏览器的自定义组件,根据所述标识信息对所述当前节点进行标注,包括:在所述虚拟文档对象模型树的根节点上标注所述标识信息。
6.根据权利要求1所述的方法,其特征在于,在确定所述当前节点的路径未被标注,并对所述当前节点的路径信息进行标注之后,所述方法还包括:
将所述当前节点的标识信息写入所述节点的属性列表中;
根据多个节点构成虚拟文档对象模型树;
基于所述节点的属性列表生成所述虚拟文档对象模型树对应的真实文档对象模型树,其中,所述真实文档对象模型树中的节点具有所述节点对应的标识信息。
7.根据权利要求6所述的方法,其特征在于,在基于所述节点的属性列表生成所述虚拟文档对象模型树对应的真实文档对象模型树之后,所述方法还包括:
调用所述真实文档对象模型树对应的渲染函数;
基于所述渲染函数将所述真实文档对象模型树中的控件渲染至所述显示界面。
8.根据权利要求1所述的方法,其特征在于,所述控件与指定事件相关联,当所述控件被所述指定事件触发时,向用于埋点的后端服务器返回与所述控件相关联的节点的标识信息。
9.一种埋点的方法,其特征在于,包括:
检测目标控件是否被指定事件触发;
确定所述目标控件被所述指定事件触发,并向用于埋点的后端服务器返回与所述目标控件相关联的节点的标识信息,其中,所述节点为真实文档对象模型树中的节点,所述真实文档对象模型树根据虚拟文档对象模型树中的属性列表生成,所述节点的标识信息在创建所述虚拟文档对象模型的过程中加入所述属性列表。
10.根据权利要求9所述的方法,其特征在于,在检测目标控件是否被指定事件触发之前,所述方法还包括:生成所述节点的标识信息,其中,生成所述节点的标识信息的步骤包括:
在所述虚拟文档对象模型树生成的过程中,判断当前节点的路径是否被标注,其中,所述虚拟文档对象模型树所包括的节点用于表示浏览器中的至少一个组件,所述至少一个组件用于生成显示界面中的控件;
确定所述当前节点的路径未被标注,并对所述当前节点的路径信息进行标注,得到所述当前节点的标识信息,其中,所述当前节点的标识信息包括所述当前节点的路径信息;
将所述当前节点的标识信息加入所述节点的属性列表中。
11.一种生成埋点标识的装置,其特征在于,包括:
判断模块,用于在虚拟文档对象模型树生成的过程中,判断当前节点的路径是否被标注,其中,所述虚拟文档对象模型树所包括的节点用于表示浏览器中的至少一个组件,所述至少一个组件用于生成显示界面中的控件;
标注模块,用于确定所述当前节点的路径未被标注,并对所述当前节点的路径信息进行标注,得到所述当前节点的标识信息,其中,所述当前节点的标识信息包括所述当前节点的路径信息。
12.一种生产埋点标识的方法,其特征在于,包括:
在虚拟文档对象模型生成的过程中,对当前节点进行标注,得到所述当前节点的标识信息,其中,所述当前节点的标识信息包括所述当前节点的路径信息;
将所述当前节点的标识信息加入所述虚拟文档对象模型的属性列表,并根据所述虚拟文档模型构成虚拟文档对象模型树;
根据所述虚拟文档模型的属性列表生成所述虚拟文档对象模型树对应的真实文档对象模型树,其中,所述真实文档对象模型树中的节点具有所述节点对应的标识信息。
13.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至8中任意一项所述的生成埋点标识的方法。
14.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至8中任意一项所述的生成埋点标识的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911201599.4A CN112883250B (zh) | 2019-11-29 | 2019-11-29 | 生成埋点标识的方法、装置和埋点的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911201599.4A CN112883250B (zh) | 2019-11-29 | 2019-11-29 | 生成埋点标识的方法、装置和埋点的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112883250A true CN112883250A (zh) | 2021-06-01 |
CN112883250B CN112883250B (zh) | 2024-10-01 |
Family
ID=76039252
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911201599.4A Active CN112883250B (zh) | 2019-11-29 | 2019-11-29 | 生成埋点标识的方法、装置和埋点的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112883250B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120110384A1 (en) * | 2010-11-01 | 2012-05-03 | International Business Machines Corporation | Source Identification of Compliance Errors in a Web Page with Custom Widgets |
CN108647025A (zh) * | 2018-05-15 | 2018-10-12 | 浙江口碑网络技术有限公司 | 文档对象模型中节点的处理方法及装置、电子和存储设备 |
CN109445784A (zh) * | 2018-09-29 | 2019-03-08 | Oppo广东移动通信有限公司 | 结构数据的处理方法、装置、存储介质及电子设备 |
WO2019085085A1 (zh) * | 2017-11-01 | 2019-05-09 | 平安科技(深圳)有限公司 | 页面展示方法、装置、计算机设备和存储介质 |
WO2019085083A1 (zh) * | 2017-11-01 | 2019-05-09 | 平安科技(深圳)有限公司 | 控件匹配方法、装置、计算机设备和存储介质 |
CN110059282A (zh) * | 2019-04-23 | 2019-07-26 | 北京奇艺世纪科技有限公司 | 一种交互类数据的获取方法及系统 |
CN110196953A (zh) * | 2019-05-30 | 2019-09-03 | 北京腾云天下科技有限公司 | 一种应用埋点方法、装置、计算设备和系统 |
-
2019
- 2019-11-29 CN CN201911201599.4A patent/CN112883250B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120110384A1 (en) * | 2010-11-01 | 2012-05-03 | International Business Machines Corporation | Source Identification of Compliance Errors in a Web Page with Custom Widgets |
WO2019085085A1 (zh) * | 2017-11-01 | 2019-05-09 | 平安科技(深圳)有限公司 | 页面展示方法、装置、计算机设备和存储介质 |
WO2019085083A1 (zh) * | 2017-11-01 | 2019-05-09 | 平安科技(深圳)有限公司 | 控件匹配方法、装置、计算机设备和存储介质 |
CN108647025A (zh) * | 2018-05-15 | 2018-10-12 | 浙江口碑网络技术有限公司 | 文档对象模型中节点的处理方法及装置、电子和存储设备 |
CN109445784A (zh) * | 2018-09-29 | 2019-03-08 | Oppo广东移动通信有限公司 | 结构数据的处理方法、装置、存储介质及电子设备 |
CN110059282A (zh) * | 2019-04-23 | 2019-07-26 | 北京奇艺世纪科技有限公司 | 一种交互类数据的获取方法及系统 |
CN110196953A (zh) * | 2019-05-30 | 2019-09-03 | 北京腾云天下科技有限公司 | 一种应用埋点方法、装置、计算设备和系统 |
Non-Patent Citations (3)
Title |
---|
NORBERT LINDOW等: "Voronoi-Based Extraction and Visualization of Molecular Paths", 《IEEE TRANSACTIONS ON VISUALIZATION AND COMPUTER GRAPHICS》, 3 November 2011 (2011-11-03) * |
侯俊;周红;马春燕;郑江滨;: "面向WEB服务的测试用例自动化生成方法", 西北工业大学学报, 15 February 2018 (2018-02-15) * |
谢名丞;: "大数据背景下的用户行为深度追踪研究与应用", 科技广场, no. 03, 25 December 2018 (2018-12-25) * |
Also Published As
Publication number | Publication date |
---|---|
CN112883250B (zh) | 2024-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107861655B (zh) | 控件匹配方法、装置、计算机设备和存储介质 | |
US11163851B2 (en) | Method, apparatus, computer device and storage medium of page displaying | |
EP3433732B1 (en) | Converting visual diagrams into code | |
CN107729475B (zh) | 网页元素采集方法、装置、终端与计算机可读存储介质 | |
CN108399072A (zh) | 应用页面更新方法和装置 | |
CN105404507A (zh) | 一种流程模板的构建方法及系统 | |
CN103678511A (zh) | 根据可视化模板进行网页内容抽取的方法及装置 | |
CN103109264A (zh) | 创建配置文件模板 | |
CN103678509A (zh) | 生成网页模板的方法及装置 | |
CN110472175A (zh) | 用户行为分析方法及终端设备 | |
CN103530338A (zh) | 在计算设备上进行页面渲染的框架及生成页面的方法 | |
CN103678510A (zh) | 对网页提供可视化标注的方法及装置 | |
CN116245052A (zh) | 一种图纸迁移方法、装置、设备和存储介质 | |
CN104375814A (zh) | 接口文档的生成方法及装置 | |
CN113590593B (zh) | 数据表信息的生成方法和装置、存储介质及电子装置 | |
CN113127776A (zh) | 面包屑路径生成方法、装置及终端设备 | |
CN111831277B (zh) | 虚拟数据生成方法、系统、设备及计算机可读存储介质 | |
CN105094768A (zh) | 应用界面生成方法和应用界面生成装置 | |
CN117875288A (zh) | 一种表单页面生成方法、装置及电子设备 | |
CN113705182A (zh) | 一种合同在线生成方法、装置及可读存储介质 | |
CN111666735A (zh) | 图像文本标注显示方法和装置、存储介质 | |
US10788959B2 (en) | Personalization of a web application | |
CN112883250B (zh) | 生成埋点标识的方法、装置和埋点的方法 | |
CN105450501A (zh) | 设置定制化回复功能的方法及装置 | |
CN113723119A (zh) | 页面翻译方法、装置和存储介质及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |