CN112395023A - 一种运营活动展示方法、装置及系统 - Google Patents

一种运营活动展示方法、装置及系统 Download PDF

Info

Publication number
CN112395023A
CN112395023A CN202011295952.2A CN202011295952A CN112395023A CN 112395023 A CN112395023 A CN 112395023A CN 202011295952 A CN202011295952 A CN 202011295952A CN 112395023 A CN112395023 A CN 112395023A
Authority
CN
China
Prior art keywords
activity
live
live broadcast
carousel
bundle
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
Application number
CN202011295952.2A
Other languages
English (en)
Other versions
CN112395023B (zh
Inventor
傅秋宇
姜源
董阳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing ByteDance Network Technology Co Ltd
Original Assignee
Beijing ByteDance Network Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing ByteDance Network Technology Co Ltd filed Critical Beijing ByteDance Network Technology Co Ltd
Priority to CN202011295952.2A priority Critical patent/CN112395023B/zh
Publication of CN112395023A publication Critical patent/CN112395023A/zh
Application granted granted Critical
Publication of CN112395023B publication Critical patent/CN112395023B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45529Embedded in an application, e.g. JavaScript in a Web browser
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Transfer Between Computers (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本发明实施例提供了一种运营活动展示方法、装置及系统,涉及软件开发技术领域。该方法包括:在进入直播间时,向服务端发送请求信息,直播活动为配置为通过直播间的活动展示容器进行展示的运营活动;接收服务端发送的每一个直播活动的配置文件;任一直播活动的配置文件包括bundle.js文件和标识;生成轮播组件,并生成各直播活动的轮播根节点;将各直播活动的bundle.js文件加载到活动展示容器中;在各直播活动注册完成之后,将各直播活动的bundle.js文件挂载到各直播活动的轮播根节点上;运行每一个各直播活动的业务逻辑,并轮播展示各直播活动的页面。本发明实施例用于通过一个活动展示位对多个运行活动进行展示。

Description

一种运营活动展示方法、装置及系统
技术领域
本发明涉及软件开发技术领域,尤其涉及一种运营活动展示方法、装置及系统。
背景技术
随着手机、平板电脑等终端设备的普及以及互联网技术的不断发展,直播已成为一种潮流趋势,越来越受到人们的欢迎。
为了避免过度遮挡直播界面,通常直播界面中用于展示运营活动的活动展示位仅有一个,然而随着直播生态的不断丰富,直播营收、活跃、内容、主播观众活动玩法等运营活动不断增多,运营活动已达到日均几十加的数量,一个活动展示位根本无法承载日均几十加的运营活动,活动展示位冲突非严重,因此如何通过一个活动展示位对多个运行活动进行展示已成为本领域亟待解决的一个问题。
发明内容
有鉴于此,本发明提供了一种运营活动展示方法、装置及系统,用于通过一个活动展示位对多个运行活动进行展示。
为了实现上述目的,本发明实施例提供技术方案如下:
第一方面,本发明的实施例提供了运营活动展示方法,应用于客户端,所述方法包括:
在进入直播间时,向服务端发送请求信息,所述请求信息用于请求获取每一个直播活动的配置文件,所述直播活动为配置为通过所述直播间的活动展示容器进行展示的运营活动;
接收所述服务端发送的每一个直播活动的配置文件;任一直播活动的配置文件包括该直播活动的bundle.js文件和该直播活动的标识;
生成轮播组件,并根据各直播活动的标识生成各直播活动的轮播根节点;
将各直播活动的bundle.js文件加载到所述活动展示容器中;
在各直播活动注册完成之后,将各直播活动的bundle.js文件挂载到各直播活动的轮播根节点上;
运行每一个各直播活动的业务逻辑,并通过所述轮播组件在所述活动展示容器对应的展示窗口中轮播展示各直播活动的页面。
可选的,所述方法还包括:
在将各直播活动的bundle.js文件加载到所述活动展示容器中之前,通过JSB将各直播活动的配置文件透传给所述活动展示容器。
可选的,所述方法还包括:
接收所述服务端发送的业务消息,所述业务消息携带有业务数据和所述业务数据所属直播活动的标识;
通过所述活动展示容器向每一个直播活动发送所述业务消息;
控制每一个直播活动判断所述业务消息携带的标识是否为自身的标识;
若是,则响应所述业务数据;
若否,则丢弃所述业务数据。
可选的,所述方法还包括:
对每一个直播活动传入自定义窗口,任一直播活动的自定义窗口挂载有该直播活动的自定义全局变量;
当任一直播活动调用全局变量时,读取该直播活动的自定义窗口中的自定义全局变量。
可选的,各直播活动的层叠样式表CSS的名称均不相同。
可选的,所述方法还包括:
通过块-元素-修饰符BEM命名法对各直播活动的CSS进行命名,以使各直播活动的CSS的名称均不相同。
可选的,任一直播活动的配置文件还包括该直播活动对应的预设图像;所述方法还包括:
在执行各直播活动的bundle.js文件的过程中进行错误事件监听;
若在执行某一直播活动的bundle.js文件的过程中监听到错误事件,则在轮播展示该直播活动的页面的时间段内,在所述展示窗口中展示该直播活动对应的预设图像。
可选的,所述方法还包括:
在各直播活动的bundle.js文件均执行完成之后,停止对错误事件进行监听。
可选的,任一直播活动的配置文件还包括该直播活动的优先级;所述方法还包括:
根据各直播活动的优先级控制各直播活动的页面在所述展示窗口中的轮播展示顺序。
第二方面,本发明实施例提供了一种运营活动展示方法,应用于服务端,所述方法包括:
接收各运营活动的超文本标记语言HTML文件;
根据各运营活动的HTML文件生成各活动的配置文件,任一运营活动的配置文件包括该运营活动的bundle.js文件和该运营活动的标识;
接收客户端发送的请求信息,所述请求信息用于请求获取每一个直播活动的配置文件,所述直播活动为配置为通过所述直播间的活动展示容器进行展示的运营活动;
向所述客户端发送每一个直播活动的配置文件。
可选的,所述方法还包括:
向客户端发送业务消息,所述业务消息携带有业务数据和所述业务数据所属直播活动的标识。
可选的,任一直播活动的配置文件还包括该直播活动对应的预设图像;
若所述客户端在执行某一直播活动的bundle.js文件的过程中监听到错误事件,则在轮播展示该直播活动的页面的时间段内,在展示窗口中展示该直播活动对应的预设图像。
可选的,任一直播活动的配置文件还包括该直播活动的优先级;
各直播活动的优先级用于控制各直播活动的页面的轮播展示顺序。
第三方面,本发明实施例提供了一种客户端,包括:
发送单元,用于在进入直播间时,向服务端发送请求信息,所述请求信息用于请求获取每一个直播活动的配置文件,所述直播活动为配置为通过所述直播间的活动展示容器进行展示的运营活动;
接收单元,用于接收所述服务端发送的每一个直播活动的配置文件;任一直播活动的配置文件包括该直播活动的bundle.js文件和该直播活动的标识;
生成单元,用于生成轮播组件,并根据各直播活动的标识生成各直播活动的轮播根节点;
加载单元,用于将各直播活动的bundle.js文件加载到所述活动展示容器中;
挂载单元,用于在各直播活动注册完成之后,将各直播活动的bundle.js文件挂载到各直播活动的轮播根节点上;
展示单元,用于运行每一个各直播活动的业务逻辑,并通过所述轮播组件在所述活动展示容器对应的展示窗口中轮播展示各直播活动的页面。
可选的,所述接收单元,还用于在将各直播活动的bundle.js文件加载到所述活动展示容器中之前,通过JSB将各直播活动的配置文件透传给所述活动展示容器。
可选的,所述接收单元,还用于接收所述服务端发送的业务消息,通过所述活动展示容器向每一个直播活动发送所述业务消息,并控制每一个直播活动判断所述业务消息携带的标识是否为自身的标识,以及在所述业务消息携带的标识为自身的标识时响应所述业务数据,在所述业务消息携带的标识不为自身的标识时,丢弃所述业务数据;
所述业务消息携带有业务数据和所述业务数据所属直播活动的标识。
可选的,所述加载单元,还用于对每一个直播活动传入自定义窗口,任一直播活动的自定义窗口挂载有该直播活动的自定义全局变量,以及当任一直播活动调用全局变量时,读取该直播活动的自定义窗口中的自定义全局变量。
可选的,各直播活动的层叠样式表CSS的名称均不相同。
可选的,所述加载单元,还用于通过块-元素-修饰符BEM命名法对各直播活动的CSS进行命名,以使各直播活动的CSS的名称均不相同。
可选的,任一直播活动的配置文件还包括该直播活动对应的预设图像;所述执行单元,还用于在执行各直播活动的bundle.js文件的过程中进行错误事件监听;
所述展示单元,还用于在执行某一直播活动的bundle.js文件的过程中监听到错误事件的情况下,在轮播展示该直播活动的页面的时间段内,在所述展示窗口中展示该直播活动对应的预设图像。
可选的,所述监听单元,还用于在各直播活动的bundle.js文件均执行完成之后,停止对错误事件进行监听。
可选的,任一直播活动的配置文件还包括该直播活动的优先级;所述展示单元还用于根据各直播活动的优先级控制各直播活动的页面在所述展示窗口中的轮播展示顺序。
第四方面,本发明实施例提供一种服务端,包括:
上载单元,用于接收各运营活动的超文本标记语言HTML文件;
生成单元,用于根据各运营活动的HTML文件生成各活动的配置文件,任一运营活动的配置文件包括该运营活动的bundle.js文件和该运营活动的标识;
接收单元,用于接收客户端发送的请求信息,所述请求信息用于请求获取每一个直播活动的配置文件,所述直播活动为配置为通过所述直播间的活动展示容器进行展示的运营活动;
发送单元,用于向所述客户端发送每一个直播活动的配置文件。
可选的,所述发送单元,还用于向客户端发送业务消息,所述业务消息携带有业务数据和所述业务数据所属直播活动的标识。
可选的,任一直播活动的配置文件还包括该直播活动对应的预设图像;
若所述客户端在执行某一直播活动的bundle.js文件的过程中监听到错误事件,则在轮播展示该直播活动的页面的时间段内,在展示窗口中展示该直播活动对应的预设图像。
可选的,任一直播活动的配置文件还包括该直播活动的优先级;
各直播活动的优先级用于控制各直播活动的页面的轮播展示顺序。
第五方面,本发明实施例提供一种运营活动展示系统,包括:第三方面或第三方面任一项所述的客户端和第四方面或第四方面任一项所述的服务端。
第六方面,本发明实施例提供一种电子设备,其特征在于,包括:存储器和处理器,存储器用于存储计算机程序;处理器用于在调用计算机程序时执行第一方面或第一方面任一项或第二方面或第二方面任一项所述的运营活动展示方法。
第七方面,本发明实施例提供一种计算机可读存储介质,其特征在于,其上存储有计算机程序,计算机程序被处理器执行时实现第一方面或第一方面任一项或第二方面或第二方面任一项所述的运营活动展示方法。
本发明实施例提供的运营活动展示方法在客户端进入直播间时,向服务端发送请求信息,并接收所述服务端发送的每一个直播活动的配置文件,然后生成轮播组件,并根据各直播活动的标识生成各直播活动的轮播根节点,再将各直播活动的bundle.js文件加载到所述活动展示容器中,以及在各直播活动注册完成之后,将各直播活动的bundle.js文件挂载到各直播活动的轮播根节点上;最后运行每一个各直播活动的业务逻辑,并通过所述轮播组件在所述活动展示容器对应的展示窗口中轮播展示各直播活动的页面。由于本发明实施例提供的运营活动展示方法可以通过直播间的活动展示容器轮播展示各直播活动的页面,因此本发明实施例提供了一种可以通过一个活动展示位对多个运行活动进行展示的显示方案。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的运营活动展示系统的示意图;
图2为本发明实施例提供的运营活动展示方法的流程图;
图3为本发明实施例提供的运营活动展示方法的原理图;
图4为本发明实施例提供的客户端的结构示意图;
图5为本发明实施例提供的服务端的结构示意图;
图6为本发明实施例提供的电子设备的硬件结构示意图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面将对本发明的方案进行进一步描述。需要说明的是,在不冲突的情况下,本发明的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但本发明还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本发明的一部分实施例,而不是全部的实施例。
在本发明实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本发明实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。此外,在本发明实施例的描述中,除非另有说明,“多个”的含义是指两个或两个以上。
图1为本发明实施例提供的执行运营活动展示方法的执行运营活动展示系统。参照图1所示,本发明实施例提供的运营活动展示系统包括:服务端11和客户端12。服务端11用于接收各运营活动独立开发、测试、部署、上线的生成的超文本标记语言(Hyper TextMarkup Language)文件,并根据各运营活动的HTML文件生成各运营活动的配置文件。客户端12用于在进入直播间时向服务端11发送情请求信息,接收服务器方的获取配置为在进入的直播间进行展示的直播活动的配置文件,并通过直播间的活动展示容器121中的将各直播活动的bundle.js文件加载至直播间的活动展示容器121中、生成直播活动的轮播根节点,以及在各直播活动注册完成之后将各直播活动的挂载到轮播根节点,以现实通过活动展示容器121对应的展示窗口122中轮播展示各直播活动的页面。
基于上述内容,本发明实施例提供了一种运营活动展示方法,具体的,参照图2所示,本发明实施例提供的运营活动展示方法包括如下步骤:
S201、服务端接收各运营活动的HTML文件。
目前,使用最为普遍的运营活动打包构建方式包括两种,第一种为:运营活动通过软件包管理服务(package registry)与展示运营活动的主应用一起打包发布;第二种为:各运营活动和展示运营活动的主应用分别独立打包发布,主应用在运行时动态加载运营活动的资源。第一种构建方式与第二中构建方式的特点、优点、劣点如下表1所示:
表1
Figure BDA0002785420220000091
在本发明实施例中,由于不同运营活动可能由不同的开发团队或相同开发团队中的不同开发人员开发,采用第一种打包构建方式会极大的增加开发成本,因此本发明实施例中采用第二种打包构建方式打包构建各运营活动的HTML文件,并将各运营活动的HTML文件发布至服务端。其中,任一运营活动的HTML文件包括该运营活动的bundle.js文件。
S202、服务端根据各运营活动的HTML文件生成各活动的配置文件。
其中,任一运营活动的配置文件包括该运营活动的bundle.js文件和该运营活动的标识。
示例性的,运营活动的标识可以为运营活动的身份标识号(Identity document,ID)。运营活动的ID可以由服务端根据运行活动的发布时间、发布顺序等自动生成,也可以由运营人员手动配置。
S203、客户端在进入直播间时,向服务端发送请求信息。
对应的,服务端接收客户端发送的请求信息。
其中,所述请求信息用于请求获取每一个直播活动的配置文件,所述直播活动为配置为通过所述直播间的活动展示容器进行展示的运营活动。
S204、服务端向所述客户端发送每一个直播活动的配置文件。
对应的,客户端接收所述服务端发送的每一个直播活动的配置文件。
其中,任一直播活动的配置文件包括该直播活动的bundle.js文件和该直播活动的标识。
S205、客户端生成轮播组件,并根据各直播活动的标识生成各直播活动的轮播根节点。
具体的,可以通过如下程序代码生成轮播组件,并根据各直播活动的标识生成各直播活动的轮播根节点:
Figure BDA0002785420220000101
S206、客户端将各直播活动的bundle.js文件加载到所述活动展示容器中。
具体的,可以通过如下程序代码现实将各直播活动的bundle.js文件加载到所述活动展示容器中:
Figure BDA0002785420220000102
Figure BDA0002785420220000111
需要说明的是,在客户端接收所述服务端发送的每一个直播活动的配置文件之后,将各直播活动的bundle.js文件加载到所述活动展示容器中,客户端可以将接收到的每一个直播活动的配置文件传输至活动展示容器。从而提高将各直播活动的bundle.js文件加载到所述活动展示容器的速度。
可选的,客户端可以通过JSB将从所述服务端获取的各直播活动的配置文件透传给活动展示容器。
具体的,活动展示容器可以通过如下程序代码获取每一个直播活动的配置:
Figure BDA0002785420220000121
S207、在各直播活动注册完成之后,将各直播活动的bundle.js文件挂载到各直播活动的轮播根节点上。
即,各直播活动先进行注册,在各直播活动注册完成之后,再将各直播活动的bundle.js文件挂载到各直播活动的轮播根节点上。
具体的,可以通过如下程序代码现实各直播活动的注册:
1//引入直播活动
2import App from'./app';
3//调用register方法注册直播活动
4const[container,master]=carbon.register('testA',App);
其中,register方法注册直播活动的实现方式如下:
Figure BDA0002785420220000131
在各直播活动注册完成之后,可以通过如下程序代码现实将各直播活动的bundle.js文件挂载到各直播活动的轮播根节点上:
1//通过document.getElementbyID方法获取直播活动轮播根节点
,并将直播活动挂载到直播活动的轮播根节点上
2ReactDOM.render(<HotApp container={container}master=
{master}/>,document.getElementById('testA'));
S208、运行每一个各直播活动的业务逻辑,并通过所述轮播组件在所述活动展示容器对应的展示窗口中轮播展示各直播活动的页面。
可选的,任一直播活动的配置文件还包括该直播活动的优先级,本发明实施例提供的运营活动展示方法还包括:
根据各直播活动的优先级控制各直播活动的页面在所述展示窗口中的轮播展示顺序。
即,服务端向客户端发送的每一个直播活动的配置文件中,任一直播活动的配置文件还包括该直播活动对应的预设图像;
各直播活动的优先级用于控制各直播活动的页面的轮播展示顺序。
本发明实施例提供的运营活动展示方法在客户端进入直播间时,向服务端发送请求信息,并接收所述服务端发送的每一个直播活动的配置文件,然后生成轮播组件,并根据各直播活动的标识生成各直播活动的轮播根节点,再将各直播活动的bundle.js文件加载到所述活动展示容器中,以及在各直播活动注册完成之后,将各直播活动的bundle.js文件挂载到各直播活动的轮播根节点上,最后运行每一个各直播活动的业务逻辑,并通过所述轮播组件在所述活动展示容器对应的展示窗口中轮播展示各直播活动的页面。由于本发明实施例提供的运营活动展示方法可以通过直播间的活动展示容器轮播展示各直播活动的页面,因此本发明实施例提供了一种可以通过一个活动展示位对多个运行活动进行展示的显示方案。
作为本发明实施例一种可选的实施方式,在上述实施例提供的基础上,本发明实施例提供的运营活动展示方法还包括如下步骤a至步骤e。
步骤a、接收所述服务端发送的业务消息。
其中,所述业务消息携带有业务数据和所述业务数据所属直播活动的标识。
具体的,业务消息可以为map格式的消息,map格式中的key为直播活动的标识,map格式中,value是直播活动的业务数据。
步骤b、通过所述活动展示容器向每一个直播活动发送所述业务消息。
对应的,各直播活动接收业务消息。
具体的,可以通过如下代码现实向每一个直播活动发送所述业务消息:
Figure BDA0002785420220000151
对应的,各直播活动接收业务消息。各直播活动可以通过如下代码现实接收业务消息:
1//直播活动调用carbon 0n方法监听活动展示容器发送的业务消息
2carbon.on(`${this.container.$key}_roomMessageChange`,res=>
{})
步骤c、控制每一个直播活动判断所述业务消息携带的标识是否为自身的标识。
即,获取业务消息中携带的标识,然后判断业务消息中携带的标识是否与自身标识相同。
在上述步骤c中,对于任一直播活动,若业务消息携带的标识与自身标识相同,则执行如下步骤d,而若业务消息携带的标识与自身标识不同,则执行如下步骤e。
步骤d、响应所述业务数据。
步骤e、丢弃所述业务数据。
通过上述实施例,活动展示容器可以无冗余的将业务消息分发至对应的直播活动,进而提升活动展示容器与直播活动之间的通信效率。
以下结合图3对上述实施例提供的运营活动展示方法的微服务框架的工作原理进行说明。如图3所示,该微服务框架包括:管理模块31和至少一个子模块32(图3以包括一个子模块为例示出),管理模块31为活动展示容器中用于加载和管理直播活动的功能模块,子模块32为活动展示容器中各直播活动的直播活动形成功能模块。其中,管理模块31的主要功能包括:在直播活动打包上传至服务端且服务端生了各直播活动的配置文件后,从服务端获取各直播活动的配置文件;根据各直播活动的配置文件生成轮播组件,并生成各直播活动的轮播根节点加载并执行各直播活动的bundle.js文件;将各直播活动挂载至轮播根节点上以及向子模块发送业务消息。子模块31的主要功能包括:注册、执行自身业务逻辑以及接收管理模块发送的业务消息。
以下对上述实施例中各直播活动的环境隔离的实现方式进行说明。由于各直播活动之间的全局变量相互干扰,则会产生无法预估的问题,因此环境隔离需要包括js的隔离,又因为各直播活动的层叠样式表(Cascading Style Sheets,CSS)相互影响,则会影响各直播活动的页面的然,因此环境隔离还要包括CSS的隔离。
本发明实施例提供的js的隔离方案包括:
对每一个直播活动传入自定义窗口,任一直播活动的自定义窗口挂载有该直播活动的自定义全局变量;
当任一直播活动调用全局变量时,读取该直播活动的自定义窗口中的自定义全局变量。
具体的,可以在将直播活动挂载到根节点的过程中将对每一个直播活动传入自定义窗口。自定义窗口中的全局变量可以包括定时器等。直播活动可以通过代理/反射的方式读取自定义窗口中的自定义全局变量。
示例性的,可以通过如下代码现实对每一个直播活动传入自定义窗口:
Figure BDA0002785420220000171
由于直播活动调用全局变量时读取的是自定义窗口中的自定义全局变量,因此上述实施例可以避免直播活动直接操作全局变量,进而避免出现问题。
本发明实施例提供的CSS的隔离方案包括:
各直播活动的CSS的名称均不相同。
具体的,可以通过块-元素-修饰符(BlockElementModifier,BEM)命名法对各直播活动的CSS进行命名,以使各直播活动的CSS的名称均不相同。
由于本发明实施例中各直播活动的CSS的名称均不相同,因此可以保证各个直播活动的CSS命名的唯一性,从而实现各直播活动的CSS的隔离。
在执行各直播活动的bundle.js文件过程,如果某个直播活动的bundle.js文件中存在语法错误,则直播活动的页面无法正常渲染,进而在轮播组件通过展示窗口展示该直播活动的页面时,会显示为透明状态。为解决上述问题,本发明实施例中任一直播活动的配置文件还包括该直播活动对应的预设图像。
即,服务端向客户端发送的每一个直播活动的配置文件中,任一直播活动的配置文件还包括该直播活动对应的预设图像;
在所述客户端执行某一直播活动的bundle.js文件的过程出现错误事件的情况下,该直播活动对应的预设图像用于在轮播展示该直播活动的页面的时间段内展示。
上述实施例提供的运营活动展示方法还包括:
在执行各直播活动的bundle.js文件的过程中进行错误事件监听;
若在执行某一直播活动的bundle.js文件的过程中监听到错误事件,则在轮播展示该直播活动的页面的时间段内,在所述展示窗口中展示该直播活动对应的预设图像。
由于上述实施例在执行各直播活动的bundle.js文件的过程中进行错误事件监听,且在执行某一直播活动的bundle.js文件的过程中监听到错误事件,则在轮播展示该直播活动的页面的时间段内,在所述展示窗口中展示该直播活动对应的预设图像,因此上述实施例可以在某一直播活动的bundle.js文件中存在语法错误时,显示直播活动对应的预设图像,进而避免影响其他直播活动的页面的正常展示。
进一步的,在上述实施例的基础上,本发明实施例提供的运营活动展示方法还包括:
在各直播活动的bundle.js文件均执行完成之后,停止对错误事件进行监听。
在各直播活动的bundle.js文件均执行完成之后,停止对错误事件进行监听,可以避免浪费客户端的计算资源,提升客户端性能。
基于同一发明构思,作为对上述方法的实现,本发明实施例还提供了一种客户端,该客户端实施例与前述方法实施例对应,为便于阅读,下述客户端实施例不再对前述方法实施例中的细节内容进行逐一赘述,但应当明确,本实施例中的客户端能够执行前述方法实施例中客户端做执行的各个步骤,并实现相应的效果。
图4为本发明实施例提供的客户端的结构示意图,如图4所示,本实施例提供的客户端400包括:
发送单元41,用于在进入直播间时,向服务端发送请求信息,所述请求信息用于请求获取每一个直播活动的配置文件,所述直播活动为配置为通过所述直播间的活动展示容器进行展示的运营活动;
接收单元42,用于接收所述服务端发送的每一个直播活动的配置文件;任一直播活动的配置文件包括该直播活动的bundle.js文件和该直播活动的标识;
生成单元43,用于生成轮播组件,并根据各直播活动的标识生成各直播活动的轮播根节点;
加载单元44,用于将各直播活动的bundle.js文件加载到所述活动展示容器中;
挂载单元45,用于在各直播活动注册完成之后,将各直播活动的bundle.js文件挂载到各直播活动的轮播根节点上;
展示单元46,用于运行每一个各直播活动的业务逻辑,并通过所述轮播组件在所述活动展示容器对应的展示窗口中轮播展示各直播活动的页面。
可选的,所述接收单元42,还用于在将各直播活动的bundle.js文件加载到所述活动展示容器中之前,通过JSB将各直播活动的配置文件透传给所述活动展示容器。
可选的,所述接收单元42,还用于接收所述服务端发送的业务消息,通过所述活动展示容器向每一个直播活动发送所述业务消息,并控制每一个直播活动判断所述业务消息携带的标识是否为自身的标识,以及在所述业务消息携带的标识为自身的标识时响应所述业务数据,在所述业务消息携带的标识不为自身的标识时,丢弃所述业务数据;
所述业务消息携带有业务数据和所述业务数据所属直播活动的标识。
可选的,所述加载单元44,还用于对每一个直播活动传入自定义窗口,任一直播活动的自定义窗口挂载有该直播活动的自定义全局变量,以及当任一直播活动调用全局变量时,读取该直播活动的自定义窗口中的自定义全局变量。
可选的,各直播活动的层叠样式表CSS的名称均不相同。
可选的,所述加载单元44,还用于通过块-元素-修饰符BEM命名法对各直播活动的CSS进行命名,以使各直播活动的CSS的名称均不相同。
可选的,任一直播活动的配置文件还包括该直播活动对应的预设图像;
所述展示单元46,还用于在执行各直播活动的bundle.js文件的过程中进行错误事件监听;
所述展示单元46,还用于在执行某一直播活动的bundle.js文件的过程中监听到错误事件的情况下,在轮播展示该直播活动的页面的时间段内,在所述展示窗口中展示该直播活动对应的预设图像。
可选的,所述展示单元46,还用于在各直播活动的bundle.js文件均执行完成之后,停止对错误事件进行监听。
可选的,任一直播活动的配置文件还包括该直播活动的优先级;所述展示单元46还用于根据各直播活动的优先级控制各直播活动的页面在所述展示窗口中的轮播展示顺序。
基于同一发明构思,作为对上述方法的实现,本发明实施例还提供了一种服务端,该服务端实施例与前述方法实施例对应,为便于阅读,下述服务端实施例不再对前述方法实施例中的细节内容进行逐一赘述,但应当明确,本实施例中的服务端能够执行前述方法实施例中服务端做执行的各个步骤,并实现相应的效果。
图5为本发明实施例提供的服务端的结构示意图,如图5所示,本实施例提供的服务端500包括:
上载单元51,用于接收各运营活动的HTML文件;
生成单元52,用于根据各运营活动的HTML文件生成各活动的配置文件,任一运营活动的配置文件包括该运营活动的bundle.js文件和该运营活动的标识;
接收单元53,用于接收客户端发送的请求信息,所述请求信息用于请求获取每一个直播活动的配置文件,所述直播活动为配置为通过所述直播间的活动展示容器进行展示的运营活动;
发送单元54,用于向所述客户端发送每一个直播活动的配置文件。
可选的,所述发送单元54,还用于向客户端发送业务消息,所述业务消息携带有业务数据和所述业务数据所属直播活动的标识。
可选的,任一直播活动的配置文件还包括该直播活动对应的预设图像;
若所述客户端在执行某一直播活动的bundle.js文件的过程中监听到错误事件,则在轮播展示该直播活动的页面的时间段内,在展示窗口中展示该直播活动对应的预设图像。
可选的,任一直播活动的配置文件还包括该直播活动的优先级;
各直播活动的优先级用于控制各直播活动的页面的轮播展示顺序。
基于同一发明构思,本发明实施例还提供了一种电子设备。图6为本发明实施例提供的电子设备的结构示意图,如图6所示,本实施例提供的电子设备包括:存储器61和处理器62,存储器61用于存储计算机程序;处理器62用于在调用计算机程序时执行上述实施例提供的运营活动展示方法中客户端或服务端所执行的步骤。
本发明实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述实施例提供的运营活动展示方法中客户端或服务端所执行的步骤。
本领域技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质上实施的计算机程序产品的形式。
处理器可以是中央处理单元(CentralProcessingUnit,CPU),还可以是其他通用处理器、数字信号处理器(DigitalSignalProcessor,DSP)、专用集成电路(ApplicationSpecificIntegratedCircuit,ASIC)、现成可编程门阵列(Field-ProgrammableGateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动存储介质。存储介质可以由任何方法或技术来实现信息存储,信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。根据本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (18)

1.一种运营活动展示方法,其特征在于,应用于客户端,所述方法包括:
在进入直播间时,向服务端发送请求信息,所述请求信息用于请求获取每一个直播活动的配置文件,所述直播活动为配置为通过所述直播间的活动展示容器进行展示的运营活动;
接收所述服务端发送的每一个直播活动的配置文件;任一直播活动的配置文件包括该直播活动的bundle.js文件和该直播活动的标识;
生成轮播组件,并根据各直播活动的标识生成各直播活动的轮播根节点;
将各直播活动的bundle.js文件加载到所述活动展示容器中;
在各直播活动注册完成之后,将各直播活动的bundle.js文件挂载到各直播活动的轮播根节点上;
运行每一个各直播活动的业务逻辑,并通过所述轮播组件在所述活动展示容器对应的展示窗口中轮播展示各直播活动的页面。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在将各直播活动的bundle.js文件加载到所述活动展示容器中之前,通过JSB将各直播活动的配置文件透传给所述活动展示容器。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述服务端发送的业务消息,所述业务消息携带有业务数据和所述业务数据所属直播活动的标识;
通过所述活动展示容器向每一个直播活动发送所述业务消息;
控制每一个直播活动判断所述业务消息携带的标识是否为自身的标识;
若是,则响应所述业务数据;
若否,则丢弃所述业务数据。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对每一个直播活动传入自定义窗口,任一直播活动的自定义窗口挂载有该直播活动的自定义全局变量;
当任一直播活动调用全局变量时,读取该直播活动的自定义窗口中的自定义全局变量。
5.根据权利要求1所述的方法,其特征在于,各直播活动的层叠样式表CSS的名称均不相同。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
通过块-元素-修饰符BEM命名法对各直播活动的CSS进行命名,以使各直播活动的CSS的名称均不相同。
7.根据权利要求1所述的方法,其特征在于,任一直播活动的配置文件还包括该直播活动对应的预设图像;所述方法还包括:
在执行各直播活动的bundle.js文件的过程中进行错误事件监听;
若在执行某一直播活动的bundle.js文件的过程中监听到错误事件,则在轮播展示该直播活动的页面的时间段内,在所述展示窗口中展示该直播活动对应的预设图像。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
在各直播活动的bundle.js文件均执行完成之后,停止对错误事件进行监听。
9.根据权利要求1所述的方法,其特征在于,任一直播活动的配置文件还包括该直播活动的优先级;所述方法还包括:
根据各直播活动的优先级控制各直播活动的页面在所述展示窗口中的轮播展示顺序。
10.一种运营活动展示方法,其特征在于,应用于服务端,所述方法包括:
接收各运营活动的超文本标记语言HTML文件;
根据各运营活动的HTML文件生成各活动的配置文件,任一运营活动的配置文件包括该运营活动的bundle.js文件和该运营活动的标识;
接收客户端发送的请求信息,所述请求信息用于请求获取每一个直播活动的配置文件,所述直播活动为配置为通过所述直播间的活动展示容器进行展示的运营活动;
向所述客户端发送每一个直播活动的配置文件。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
向客户端发送业务消息,所述业务消息携带有业务数据和所述业务数据所属直播活动的标识。
12.根据权利要求10所述的方法,其特征在于,任一直播活动的配置文件还包括该直播活动对应的预设图像;
若所述客户端在执行某一直播活动的bundle.js文件的过程中监听到错误事件,则在轮播展示该直播活动的页面的时间段内,在展示窗口中展示该直播活动对应的预设图像。
13.根据权利要求10所述的方法,其特征在于,任一直播活动的配置文件还包括该直播活动的优先级;
各直播活动的优先级用于控制各直播活动的页面的轮播展示顺序。
14.一种客户端,其特征在于,包括:
发送单元,用于在进入直播间时,向服务端发送请求信息,所述请求信息用于请求获取每一个直播活动的配置文件,所述直播活动为配置为通过所述直播间的活动展示容器进行展示的运营活动;
接收单元,用于接收所述服务端发送的每一个直播活动的配置文件;任一直播活动的配置文件包括该直播活动的bundle.js文件和该直播活动的标识;
生成单元,用于生成轮播组件,并根据各直播活动的标识生成各直播活动的轮播根节点;
加载单元,用于将各直播活动的bundle.js文件加载到所述活动展示容器中;
挂载单元,用于在各直播活动注册完成之后,将各直播活动的bundle.js文件挂载到各直播活动的轮播根节点上;
展示单元,用于运行每一个各直播活动的业务逻辑,并通过所述轮播组件在所述活动展示容器对应的展示窗口中轮播展示各直播活动的页面。
15.一种服务端,其特征在于,包括:
上载单元,用于接收各运营活动的超文本标记语言HTML文件;
生成单元,用于根据各运营活动的HTML文件生成各活动的配置文件,任一运营活动的配置文件包括该运营活动的bundle.js文件和该运营活动的标识;
接收单元,用于接收客户端发送的请求信息,所述请求信息用于请求获取每一个直播活动的配置文件,所述直播活动为配置为通过所述直播间的活动展示容器进行展示的运营活动;
发送单元,用于向所述客户端发送每一个直播活动的配置文件。
16.一种运营活动展示系统,其特征在于,包括:权利要求14所述的客户端和权利要求15所述的服务端。
17.一种电子设备,其特征在于,包括:存储器和处理器,存储器用于存储计算机程序;处理器用于在调用计算机程序时执行权利要求1-13任一项所述的运营活动展示方法。
18.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,计算机程序被处理器执行时实现权利要求1-13任一项所述的运营活动展示方法。
CN202011295952.2A 2020-11-18 2020-11-18 一种运营活动展示方法、装置及系统 Active CN112395023B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011295952.2A CN112395023B (zh) 2020-11-18 2020-11-18 一种运营活动展示方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011295952.2A CN112395023B (zh) 2020-11-18 2020-11-18 一种运营活动展示方法、装置及系统

Publications (2)

Publication Number Publication Date
CN112395023A true CN112395023A (zh) 2021-02-23
CN112395023B CN112395023B (zh) 2023-02-28

Family

ID=74606570

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011295952.2A Active CN112395023B (zh) 2020-11-18 2020-11-18 一种运营活动展示方法、装置及系统

Country Status (1)

Country Link
CN (1) CN112395023B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140082497A1 (en) * 2012-09-17 2014-03-20 Fanhattan Llc System and method for browsing and accessing live media content
US20180167689A1 (en) * 2014-11-26 2018-06-14 Guangzhou Huaduo Network Technology Co., Ltd. Video Studio Creating Method and Service Device
CN110020389A (zh) * 2019-04-11 2019-07-16 广州市百果园信息技术有限公司 直播间显示页面的方法、装置、系统、设备和存储介质
CN110958462A (zh) * 2019-11-28 2020-04-03 广州市百果园信息技术有限公司 直播活动页面显示方法、装置、存储介质及直播系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140082497A1 (en) * 2012-09-17 2014-03-20 Fanhattan Llc System and method for browsing and accessing live media content
US20180167689A1 (en) * 2014-11-26 2018-06-14 Guangzhou Huaduo Network Technology Co., Ltd. Video Studio Creating Method and Service Device
CN110020389A (zh) * 2019-04-11 2019-07-16 广州市百果园信息技术有限公司 直播间显示页面的方法、装置、系统、设备和存储介质
CN110958462A (zh) * 2019-11-28 2020-04-03 广州市百果园信息技术有限公司 直播活动页面显示方法、装置、存储介质及直播系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
有备而来的王: "swiper实现轮播(很简单)", 《简书》 *

Also Published As

Publication number Publication date
CN112395023B (zh) 2023-02-28

Similar Documents

Publication Publication Date Title
CN109002362B (zh) 一种服务方法、装置、系统以及电子设备
CN103942225B (zh) 一种混合型应用客户端的资源调用方法、客户端及系统
US20210203767A1 (en) Information Processing Method and Apparatus, Storage Medium, and Electronic Device
US20110185038A1 (en) Apparatus and method for providing a terminal web service
CN110908658A (zh) 一种“微服务+微应用”系统、数据处理方法及装置
CN111858727B (zh) 一种基于模板配置的多数据源数据导出系统及方法
CN111338641A (zh) 一种应用发布方法及装置
CN110838071A (zh) 保单数据的处理方法、装置及服务器
CN112579118B (zh) 微服务的配置信息更新方法、装置、系统、介质和设备
CN110944018A (zh) 一种基于注解和动态代理的rpc通信方法及设备、介质
US8972968B1 (en) Alternate service for applications
CN111367685B (zh) 接口调用的方法及装置、计算机设备、存储介质
CN112395098A (zh) 应用程序接口调用方法、装置、存储介质和电子设备
CN109343970B (zh) 基于应用程序的操作方法、装置、电子设备及计算机介质
CN113253999B (zh) 插件化数据接入方法、数据源管理系统及接口接入方法
CN112395023B (zh) 一种运营活动展示方法、装置及系统
CN112583879B (zh) 请求的处理方法、装置及系统、存储介质和电子设备
CN110008086B (zh) 一种日志生成方法、装置以及一种客户端
CN115811481B (zh) 一种交互服务测试方法、装置、计算机设备及存储介质
CN112114804A (zh) 应用程序的生成方法、装置及系统
CN112929195A (zh) 服务系统、由服务系统执行的方法、处理装置和存储介质
CN110442392B (zh) 一种包隔离方法、装置、电子设备和存储介质
CN112486478B (zh) 一种基于领域驱动的事件处理方法及设备
CN110191141B (zh) 服务调用信息处理方法、装置及计算机系统
CN118433068A (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