CN112565870B - 内容的缓存和读取方法、客户端及存储介质 - Google Patents

内容的缓存和读取方法、客户端及存储介质 Download PDF

Info

Publication number
CN112565870B
CN112565870B CN201910919461.1A CN201910919461A CN112565870B CN 112565870 B CN112565870 B CN 112565870B CN 201910919461 A CN201910919461 A CN 201910919461A CN 112565870 B CN112565870 B CN 112565870B
Authority
CN
China
Prior art keywords
video data
identification information
content
data
client
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.)
Active
Application number
CN201910919461.1A
Other languages
English (en)
Other versions
CN112565870A (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.)
Douyin Vision Co Ltd
Douyin Vision Beijing 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 CN201910919461.1A priority Critical patent/CN112565870B/zh
Priority to PCT/CN2020/109198 priority patent/WO2021057325A1/zh
Priority to US17/764,516 priority patent/US11907121B2/en
Publication of CN112565870A publication Critical patent/CN112565870A/zh
Application granted granted Critical
Publication of CN112565870B publication Critical patent/CN112565870B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4331Caching operations, e.g. of an advertisement for later insertion during playback
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/70Information retrieval; Database structures therefor; File system structures therefor of video data
    • G06F16/78Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2668Creating a channel for a dedicated end-user group, e.g. insertion of targeted commercials based on end-user profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/431Generation of visual interfaces for content selection or interaction; Content or additional data rendering
    • H04N21/4312Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/433Content storage operation, e.g. storage operation in response to a pause request, caching operations
    • H04N21/4335Housekeeping operations, e.g. prioritizing content for deletion because of storage space restrictions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/458Scheduling content for creating a personalised stream, e.g. by combining a locally stored advertisement with an incoming stream; Updating operations, e.g. for OS modules ; time-related management operations
    • H04N21/4586Content update operation triggered locally, e.g. by comparing the version of software modules in a DVB carousel to the version stored locally
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/812Monomedia components thereof involving advertisement data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Library & Information Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本公开实施例提供一种内容的缓存和读取方法、客户端及存储介质;缓存方法包括:获取JSON数据,并确定JSON数据对应的标识信息;按照标识信息对JSON数据进行分组存储,获得标识信息对应的内存列表,并将JSON数据写入目标磁盘;对待递送内容进行视频预加载处理,获得预加载视频数据,并确定预加载视频数据对应的地址信息;将地址信息存储至内存列表和目标磁盘。读取方法包括:在接收开启指令之后,确定JSON数据的标识信息;若标识信息对应的内存列表中存在地址信息,则从内存列表中读取地址信息,并根据地址信息读取预加载视频数据;若标识信息对应的内存列表中不存在地址信息,则从目标磁盘中读取地址信息,并根据地址信息读取预加载视频数据。

Description

内容的缓存和读取方法、客户端及存储介质
技术领域
本公开实施例涉及应用程序领域的原生开屏广告投放技术,尤其涉及一种内容的缓存和读取方法、客户端及存储介质。
背景技术
随着智能硬件和移动互联网技术的发展,终端,比如智能手机、平板电脑和智能手表开始进入人们的工作和生活。人们越来越多的通过终端上的客户端应用来获取相应的信息,相应地,越来越多的广告商会选择在客户端应用上进行开屏广告的投放。其中,开屏广告,即打开客户端应用时会直接进行广告的展示,开屏广告的这种展示方式能够起到很好的广告宣传作用,是最受广告商欢迎的广告形态之一,也是目前客户端应用常用的一种商业变现手段。
然而,随着启动次数增加和开屏广告投放量的增大,客户端需要预加载的开屏广告的数据也越来越多,从而降低了客户端的启动速度,同时导致原生开屏广告读取的延迟,降低了原生开屏广告的流畅度。
发明内容
有鉴于此,本公开实施例提供一种内容的缓存和读取方法、客户端及存储介质。
第一方面,本公开实施例提供了一种内容的缓存方法,包括:
获取待递送内容对应的JSON数据,并确定所述JSON数据对应的标识信息;
按照所述标识信息对所述JSON数据进行分组存储,获得所述标识信息对应的内存列表,并根据所述标识信息和所述内存列表,将所述JSON数据写入目标磁盘;
根据所述JSON数据,对所述待递送内容进行视频预加载处理,获得预加载视频数据,并确定所述预加载视频数据对应的地址信息;其中,所述预加载视频数据用于对所述待递送内容进行视频数据的部分缓存;
按照所述标识信息将所述地址信息存储至所述内存列表和所述目标磁盘,以完成所述JSON数据和所述预加载视频数据的缓存。
在上述方案中,所述按照所述标识信息对所述JSON数据进行分组存储,获得所述标识信息对应的内存列表,包括:
将所述标识信息相同的所述JSON数据存储至同一个列表中,生成所述标识信息对应的所述内存列表;其中,一个标识信息对应一个内存列表。
在上述方案中,所述根据所述JSON数据,对所述待递送内容进行视频预加载处理,获得预加载视频数据,包括:
基于所述JSON数据,按照预设数据参数,对所述待递送内容对应的全部视频数据中的部分视频数据进行预加载,获得所述预加载视频数据。
在上述方案中,所述按照所述标识信息将所述地址信息存储至所述内存列表和所述目标磁盘之后,所述方法还包括:
遍历所述内存列表,对所述内存列表中的、未存储所述地址信息的所述JSON数据进行所述视频预加载处理,以获得所述待递送内容对应的所述全部视频数据。
在上述方案中,所述按照所述标识信息将所述地址信息存储至所述内存列表和所述目标磁盘之后,所述方法还包括:
遍历所述内存列表,对所述内存列表中的已过期数据进行删除处理,以获得更新后的内存列表;
按照所述更新后的内存列表更新所述目标磁盘。
第二方面,本公开实施例提供了一种内容的读取方法,所述方法包括:
在接收开启指令之后,确定待递送内容对应的JSON数据的标识信息;
若所述标识信息对应的内存列表中存在预加载视频数据对应的地址信息,则从所述内存列表中读取所述地址信息,并根据所述地址信息读取所述预加载视频数据;其中,所述预加载视频数据用于对所述待递送内容进行部分读取;
若所述标识信息对应的内存列表中不存在所述预加载视频数据对应的地址信息,则从目标磁盘中读取所述地址信息,并根据所述地址信息读取所述预加载视频数据。
在上述方案中,所述从目标磁盘中读取所述地址信息,并根据所述地址信息读取所述预加载视频数据之后,所述方法还包括:
根据所述标识信息和所述地址信息,更新所述内存列表。
在上述方案中,所述确定待递送内容对应的JSON数据的标识信息之后,所述方法还包括:
检测当前状态参数;
若所述当前状态参数满足预设展示条件,则判定进行所述预加载视频数据的读取流程;其中,所述预设展示条件用于判断是否展示所述预加载视频数据对应的待递送内容视频。
在上述方案中,所述根据所述地址信息读取所述预加载视频数据之后,所述方法还包括:
将所述预加载视频数据嵌入至当前信息流中,获得待展示信息流;
响应所述开启指令,播放所述待展示信息流对应的目标视频。
在上述方案中,所述根据所述地址信息读取所述预加载视频数据之后,所述方法还包括:
对所述JSON数据进行结构转换处理,获得转换后的JSON数据;
将所述转换后的JSON数据嵌入至所述当前信息流中。
在上述方案中,所述播放所述待展示信息流对应的目标视频之前,所述方法还包括:
在接收开启指令之后,获取预存模拟启动图像和/或预存模拟启动视频;
响应所述开启指令,显示所述预存模拟启动图像和/或所述预存模拟启动视频。
第三方面,本公开实施例提供了一种第一客户端,包括:所述第一客户端包括:获取单元、第一确定单元、写入单元以及存储单元,
所述获取单元,用于获取待递送内容对应的JSON数据;
所述第一确定单元,用于确定所述JSON数据对应的标识信息;
所述获取单元,还用于按照所述标识信息对所述JSON数据进行分组存储,获得所述标识信息对应的内存列表;
所述写入单元,用于根据所述标识信息和所述内存列表,将所述JSON数据写入目标磁盘;
所述获取单元,还用于根据所述JSON数据,对所述待递送内容进行视频预加载处理,获得预加载视频数据;其中,所述预加载视频数据用于对所述待递送内容进行视频数据的部分缓存;
所述第一确定单元,还用于确定所述预加载视频数据对应的地址信息;
所述存储单元,用于按照所述标识信息将所述地址信息存储至所述内存列表和所述目标磁盘,以完成所述JSON数据和所述预加载视频数据的缓存。
在上述方案中,所述获取单元,具体用于将所述标识信息相同的所述JSON数据存储至同一个列表中,生成所述标识信息对应的所述内存列表;其中,一个标识信息对应一个内存列表;
所述获取单元,还具体用于基于所述JSON数据,按照预设数据参数,对所述待递送内容对应的全部视频数据中的部分视频数据进行预加载,获得所述预加载视频数据。
在上述方案中,所述第一客户端还包括:第一更新单元,
所述获取单元,还用于按照所述标识信息将所述地址信息存储至所述内存列表和所述目标磁盘之后,遍历所述内存列表,对所述内存列表中的、未存储所述地址信息的所述JSON数据进行所述视频预加载处理,以获得所述待递送内容对应的所述全部视频数据;
所述第一更新单元,用于按照所述标识信息将所述地址信息存储至所述内存列表和所述目标磁盘之后,遍历所述内存列表,对所述内存列表中的已过期数据进行删除处理,以获得更新后的内存列表;以及按照所述更新后的内存列表更新所述目标磁盘。
第四方面,本公开实施例提供了一种第二客户端,其特征在于,所述第二客户端包括:第二确定单元、读取单元以及存储单元,
所述第二确定单元,用于在接收开启指令之后,确定待递送内容对应的JSON数据的标识信息;
所述读取单元,用于若所述标识信息对应的内存列表中存在预加载视频数据对应的地址信息,则从所述内存列表中读取所述地址信息,并根据所述地址信息读取所述预加载视频数据;其中,所述预加载视频数据用于对所述待递送内容进行部分读取;
所述读取单元,还用于若所述标识信息对应的内存列表中不存在所述预加载视频数据对应的地址信息,则从目标磁盘中读取所述地址信息,并根据所述地址信息读取所述预加载视频数据。
在上述方案中,所述第二客户端还包括:第二更新单元、检测单元以及判断单元,
所述第二更新单元,用于从目标磁盘中读取所述地址信息,并根据所述地址信息读取所述预加载视频数据之后,根据所述标识信息和所述地址信息,更新所述内存列表;
所述检测单元,用于确定待递送内容对应的JSON数据的标识信息之后,检测当前状态参数;
所述判断单元,用于若所述当前状态参数满足预设展示条件,则判定进行所述预加载视频数据的读取流程;其中,所述预设展示条件用于判断是否展示所述预加载视频数据对应的待递送内容视频。
在上述方案中,所述第二客户端还包括:嵌入单元、转换单元以及播放单元,
所述嵌入单元,用于根据所述地址信息读取所述预加载视频数据之后,将所述预加载视频数据嵌入至当前信息流中,获得待展示信息流;
所述播放单元,用于响应所述开启指令,播放所述待展示信息流对应的目标视频。
所述转换单元,用于根据所述地址信息读取所述预加载视频数据之后,对所述JSON数据进行结构转换处理,获得转换后的JSON数据;
所述嵌入单元,还用于将所述转换后的JSON数据嵌入至所述当前信息流中。
第五方面,本公开实施例提供了一种第一客户端,所述第一客户端包括第一处理器、存储有所述第一处理器可执行指令的第一存储器,当所述指令被所述第一处理器执行时,实现如上所述的内容的缓存方法。
第六方面,本公开实施例提供了一种第二客户端,所述第二客户端包括第二处理器、存储有所述第二处理器可执行指令的第二存储器,当所述指令被所述第二处理器执行时,实现如上所述的内容的读取方法。
第七方面,本公开实施例提供了一种存储介质,其上存储有程序,应用于第一客户端和第二客户端中,所述程序被处理器执行时,用于实现如上所述的内容的缓存和读取方法。
本公开实施例提出的一种内容的缓存和读取方法、客户端及存储介质,在缓存时,客户端获取待递送内容对应的JSON数据,并确定JSON数据对应的标识信息;按照标识信息对JSON数据进行分组存储,获得标识信息对应的内存列表,并根据标识信息和内存列表,将JSON数据写入目标磁盘;根据JSON数据,对待递送内容进行视频预加载处理,获得预加载视频数据,并确定预加载视频数据对应的地址信息;其中,预加载视频数据用于对待递送内容进行视频数据的部分缓存;按照标识信息将地址信息存储至内存列表和目标磁盘,以完成JSON数据和预加载视频数据的缓存。在读取时,客户端在接收开启指令之后,确定待递送内容对应的JSON数据的标识信息;若标识信息对应的内存列表中存在预加载视频数据对应的地址信息,则从内存列表中读取地址信息,并根据地址信息读取预加载视频数据;其中,预加载视频数据用于对待递送内容进行部分读取;若标识信息对应的内存列表中不存在预加载视频数据对应的地址信息,则从目标磁盘中读取地址信息,并根据地址信息读取预加载视频数据。也就是说,在本公开中,客户端既可以根据待递送内容对应的数据的标识信息将待递送内容对应的JSON数据和预加载视频数据异步缓存至内存列表和目标磁盘中,客户端也可以根据待递送内容对应的数据的标识信息从内存列表或目标磁盘中读取待递送内容对应的JSON数据和预加载视频数据。由此可见,本公开提出的内容的缓存和读取方法,可以基于待递送内容对应的标识信息,实现待递送内容对应的数据的分表存储和定向读取。从而可以提高客户端的启动速度,同时解决原生开屏广告读取延迟的问题,提升了原生开屏广告的流畅度。
附图说明
图1是本公开实施例提出的客户端的结构示意图;
图2是本公开实施例提出的第一客户端组成结构示意图一;
图3是本公开实施例提出的第一客户端组成结构示意图二;
图4是本公开实施例提出的第二客户端组成结构示意图一;
图5是本公开实施例提出的第二客户端组成结构示意图二;
图6是本公开实施例提出的内容的缓存方法的流程示意图;
图7是本公开实施例提出的内容的读取方法的流程示意图;
图8为开屏阶段的示意图;
图9为预存模拟启动图像的示意图。
具体实施方式
为了使本公开的目的、技术方案和优点更加清楚,下面将结合附图对本公开作进一步地详细描述,所描述的实施例不应视为对本公开的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本公开保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在本公开中,客户端可以为能够在终端中运行的软件。下面参见图1,图1是本公开实施例提出的终端的结构示意图。如图1所示,终端可以是各种电子设备,包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、个人数字助理(PDA,Personal DigitalAssistant)、平板电脑(PAD)、便携式多媒体播放器(PMP,Portable Media Player)、车载电子设备(例如车载导航电子设备)等等的移动电子设备以及诸如数字电视(TV)、台式计算机等等的固定电子设备。图1示出的终端仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图1所示,终端100可以包括处理装置(例如中央处理器、图形处理器等)110,其可以根据存储在只读存储器(ROM,Read-Only Memory)120中的程序或者从存储装置180加载到随机访问存储器(RAM,Random Access Memory)130中的程序而执行各种适当的动作和处理。在RAM130中,还存储有终端100操作所需的各种程序和数据。处理装置110、ROM120以及RAM130通过总线140彼此相连。输入/输出(I/O,Input/Output)接口150也连接至总线140。
通常,以下装置可以连接至I/O接口150:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置160;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置170;包括例如磁带、硬盘等的存储装置180;以及通信装置190。通信装置190可以允许终端100与其他设备进行无线或有线通信以交换数据。虽然图1示出了具有各种装置的终端100,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开实施例,所提供的流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,计算机程序可以通过通信装置190从网络上被下载和安装,或者从存储装置180被安装,或者从ROM120被安装。在计算机程序被处理装置110执行时,执行本公开实施例的方法中的功能。
需要说明的是,本公开实施例上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、RAM、ROM、可擦式可编程只读存储器(EPROM,ErasableProgrammable Read Only Memory)、闪存、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
在本公开实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开实施例中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、射频(RF,Radio Frequency)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述终端100中所包含的;也可以是单独存在,而未装配入终端100中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该终端执行时,使得终端100执行本公开实施例提供的方法。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN,Local Area Network))和广域网(WAN,Wide Area Network),以连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
描述于本公开实施例中所涉及到的终端中的单元和/或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。
对于硬件的方式来说,实现本公开实施例的终端的单元和/或模块可以被一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,ComplexProgrammable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable GateArray)或其他电子元件实现,用于执行实现本公开实施例提供的方法。
对于软件的方式来说,实现本公开实施例内容的缓存方法的终端中的单元和/或模块可以被两个或以上的单元实现,
下面以软件的方式为例,示例性说明实现本公开实施例的内容的缓存方法的装置中单元和/或模块。
图2是本公开实施例提出的第一客户端组成结构示意图一,如图2所示,第一客户端2包括获取单元21、第一确定单元22、写入单元23、存储单元24以及第一更新单元25。
所述获取单元21,用于获取待递送内容对应的JSON数据;
所述第一确定单元22,用于确定所述JSON数据对应的标识信息;
所述获取单元21,还用于按照所述标识信息对所述JSON数据进行分组存储,获得所述标识信息对应的内存列表;
所述写入单元23,用于根据所述标识信息和所述内存列表,将所述JSON数据写入目标磁盘;
所述获取单元21,还用于根据所述JSON数据,对所述待递送内容进行视频预加载处理,获得预加载视频数据;其中,所述预加载视频数据用于对所述待递送内容进行视频数据的部分缓存;
所述第一确定单元22,还用于确定所述预加载视频数据对应的地址信息;
所述存储单元24,用于按照所述标识信息将所述地址信息存储至所述内存列表和所述目标磁盘,以完成所述JSON数据和所述预加载视频数据的缓存。
进一步地,在本公开的实施例中,所述获取单元21,具体用于将所述标识信息相同的所述JSON数据存储至同一个列表中,生成所述标识信息对应的所述内存列表;其中,一个标识信息对应一个内存列表;
所述获取单元21,还具体用于基于所述JSON数据,按照预设数据参数,对所述待递送内容对应的全部视频数据中的部分视频数据进行预加载,获得所述预加载视频数据。
进一步地,在本公开的实施例中,所述获取单元21,还用于按照所述标识信息将所述地址信息存储至所述内存列表和所述目标磁盘之后,遍历所述内存列表,对所述内存列表中的、未存储所述地址信息的所述JSON数据进行所述视频预加载处理,以获得所述待递送内容对应的所述全部视频数据;
所述第一更新单元25,用于按照所述标识信息将所述地址信息存储至所述内存列表和所述目标磁盘之后,遍历所述内存列表,对所述内存列表中的已过期数据进行删除处理,以获得更新后的内存列表;以及按照所述更新后的内存列表更新所述目标磁盘。
图3是本公开实施例提出的第一客户端组成结构示意图二,如图3所示,第一客户端2还可以包括第一处理器26、存储有第一处理器26可执行指令的第一存储器27,进一步地,客户端2还可以包括第一通信接口28,和用于连接第一处理器26、第一存储器27以及第一通信接口28的第一总线29。
在本公开的实施例中,第一总线29用于连接第一通信接口28、第一处理器26以及第一存储器27以及这些器件之间的相互通信。
在本公开的实施例中,第一存储器27,用于存储指令和数据。
进一步地,在本公开的实施例中,上述第一处理器26,用于获取待递送内容对应的JSON数据,并确定所述JSON数据对应的标识信息;按照所述标识信息对所述JSON数据进行分组存储,获得所述标识信息对应的内存列表,并根据所述标识信息和所述内存列表,将所述JSON数据写入目标磁盘;根据所述JSON数据,对所述待递送内容进行视频预加载处理,获得预加载视频数据,并确定所述预加载视频数据对应的地址信息;其中,所述预加载视频数据用于对所述待递送内容进行视频数据的部分缓存;按照所述标识信息将所述地址信息存储至所述内存列表和所述目标磁盘,以完成所述JSON数据和所述预加载视频数据的缓存。
图4是本公开实施例提出的第二客户端组成结构示意图一,如图4所示,第二客户端3包括第二确定单元31、读取单元32、第二更新单元33、检测单元34、判断单元35、嵌入单元36、播放单元37以及转换单元38。
所述第二确定单元31,用于在接收开启指令之后,确定待递送内容对应的JSON数据的标识信息;
所述读取单元32,用于若所述标识信息对应的内存列表中存在预加载视频数据对应的地址信息,则从所述内存列表中读取所述地址信息,并根据所述地址信息读取所述预加载视频数据;其中,所述预加载视频数据用于对所述待递送内容进行部分读取;
所述读取单元32,还用于若所述标识信息对应的内存列表中不存在所述预加载视频数据对应的地址信息,则从目标磁盘中读取所述地址信息,并根据所述地址信息读取所述预加载视频数据。
进一步地,在本公开的实施例中,所述第二更新单元33,用于从目标磁盘中读取所述地址信息,并根据所述地址信息读取所述预加载视频数据之后,根据所述标识信息和所述地址信息,更新所述内存列表;
所述检测单元34,用于确定待递送内容对应的JSON数据的标识信息之后,检测当前状态参数;
所述判断单元35,用于若所述当前状态参数满足预设展示条件,则判定进行所述预加载视频数据的读取流程;其中,所述预设展示条件用于判断是否展示所述预加载视频数据对应的待递送内容视频。
进一步地,在本公开的实施例中,所述嵌入单元36,用于根据所述地址信息读取所述预加载视频数据之后,将所述预加载视频数据嵌入至当前信息流中,获得待展示信息流;
所述播放单元37,用于响应所述开启指令,播放所述待展示信息流对应的目标视频。
所述转换单元38,用于根据所述地址信息读取所述预加载视频数据之后,对所述JSON数据进行结构转换处理,获得转换后的JSON数据;
所述嵌入单元36,还用于将所述转换后的JSON数据嵌入至所述当前信息流中。
图5是本公开实施例提出的第二客户端组成结构示意图二,如图5所示,第二客户端3还可以包括第二处理器39、存储有第二处理器39可执行指令的第二存储器310,进一步地,客户端2还可以包括第二通信接口311,和用于连接第二处理器39、第二存储器310以及第二通信接口311的第二总线312。
在本公开的实施例中,第二总线312用于连接第二通信接口311、第二处理器39以及第二存储器310以及这些器件之间的相互通信。
在本公开的实施例中,第二存储器310,用于存储指令和数据。
进一步地,在本公开的实施例中,上述第二处理器39,用于在接收开启指令之后,确定待递送内容对应的JSON数据的标识信息;若所述标识信息对应的内存列表中存在预加载视频数据对应的地址信息,则从所述内存列表中读取所述地址信息,并根据所述地址信息读取所述预加载视频数据;其中,所述预加载视频数据用于对所述待递送内容进行部分读取;若所述标识信息对应的内存列表中不存在所述预加载视频数据对应的地址信息,则从目标磁盘中读取所述地址信息,并根据所述地址信息读取所述预加载视频数据。
需要指出,上述单元的分类并不构成对客户端本身的限定,例如一些单元可以拆分为两个或以上的子单元,或者,一些单元可以合并为一个新的单元。
还需要指出,上述单元的名称在某种情况下并不构成对单元本身的限定。
基于同样的理由,客户端中未详尽描述的单元和/或模块不代表相应的单元和/或模块的缺省,凡是客户端所执行的操作都可以通过客户端中的相应的单元和/或模块实现。
本公开实施例提出的一种第一客户端和第二客户端,在缓存时,第一客户端获取待递送内容对应的JSON数据,并确定所述JSON数据对应的标识信息;按照所述标识信息对所述JSON数据进行分组存储,获得所述标识信息对应的内存列表,并根据所述标识信息和所述内存列表,将所述JSON数据写入目标磁盘;根据所述JSON数据,对所述待递送内容进行视频预加载处理,获得预加载视频数据,并确定所述预加载视频数据对应的地址信息;其中,所述预加载视频数据用于对所述待递送内容进行视频数据的部分缓存;按照所述标识信息将所述地址信息存储至所述内存列表和所述目标磁盘,以完成所述JSON数据和所述预加载视频数据的缓存。在读取时,第二客户端在接收开启指令之后,确定待递送内容对应的JSON数据的标识信息;若所述标识信息对应的内存列表中存在预加载视频数据对应的地址信息,则从所述内存列表中读取所述地址信息,并根据所述地址信息读取所述预加载视频数据;其中,所述预加载视频数据用于对所述待递送内容进行部分读取;若所述标识信息对应的内存列表中不存在所述预加载视频数据对应的地址信息,则从目标磁盘中读取所述地址信息,并根据所述地址信息读取所述预加载视频数据。也就是说,在本公开中,客户端既可以根据待递送内容对应的数据的标识信息将待递送内容对应的JSON数据和预加载视频数据异步缓存至内存列表和目标磁盘中,客户端也可以根据待递送内容对应的数据的标识信息从内存列表或目标磁盘中读取待递送内容对应的JSON数据和预加载视频数据。由此可见,本公开提出的内容的缓存和读取方法,可以基于待递送内容对应的标识信息,实现待递送内容对应的数据的分表存储和定向读取。从而可以提高客户端的启动速度,同时解决原生开屏广告读取延迟的问题,提升了原生开屏广告的流畅度。
在本公开的一实施例中,继续参见图6,图6是本公开实施例提出的内容的缓存方法的流程示意图,如图6所示,客户端缓存待递送内容的方法主要可以包括以下步骤:
步骤101、获取待递送内容对应的JSON数据,并确定JSON数据对应的标识信息。
在本公开的实施例中,客户端可以获取待递送内容对应的JSON数据,然后可以确定该JSON数据对应的标识信息。其中,标识信息用于对JSON数据进行分类存储。
需要说明的是,在本公开的实施例中,终端中的客户端可以指与服务器相对应的、为客户提供本地服务的程序。除了一些只在本地运行的应用程序之外,一般安装在普通的终端上,需要与服务端互相配合运行。
因特网发展以后,较常用的客户端包括了如万维网使用的网页浏览器,收寄电子邮件时的电子邮件客户端,以及即时通讯的客户端软件等。对于这一类应用程序,需要网络中有相应的服务器和服务程序来提供相应的服务,如数据库服务,电子邮件服务等等,这样在终端和服务器端,需要建立特定的通信连接,来保证应用程序的正常运行。
需要说明的是,在本公开的实施例中,服务器可以为客户端服务,服务的内容诸如向客户端提供资源、保存客户端数据等等。
具体地,在本申请的实施例中,待递送内容可以为原生开屏广告,待递送内容还可以为天气通知内容、突发新闻内容、寻人内容、灾情警告内容等等。
进一步地,在本公开的实施例中,客户端可以通过终端与服务器的通信连接,获取服务器下发的与待递送内容对应的JSON数据。具体地,原生开屏广告是在客户端应用启动时展示的、展示时间短暂的全屏化广告形式。由于在客户端应用刚刚开启时用户的注意力非常集中,因此开屏广告特别适合广告主进行品牌曝光宣传。
需要说明的是,在本公开的实施例中,JS对象简谱(JavaScript ObjectNotation,JSON)是一种轻量级的数据交换格式。它基于ECMAScript(欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得JSON成为理想的数据交换语言。JSON数据易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
进一步地,在本公开的实施例中,客户端在获取到服务器下发的待递送内容对应的JSON数据之后,可以先确定出JSON数据对应的标识信息。具体地,客户端可以读取JSON数据中的splash_id,然后基于splash_id确定出标识信息。
需要说明的是,在本公开的实施例中,客户端在基于splash_id获取标识信息时,可以将splash_id的id尾号作为相应地JSON数据的标识信息。例如,splash_id为100000001的数据对应的标识信息为1,splash_id为100000002的数据对应的标识信息为2。
步骤102、按照标识信息对JSON数据进行分组存储,获得标识信息对应的内存列表,并根据标识信息和内存列表,将JSON数据写入目标磁盘。
在本公开的实施例中,客户端在获取待递送内容对应的JSON数据,并确定JSON数据对应的标识信息之后,便可以按照标识信息对JSON数据进行分组并存储,从而可以获得标识信息对应的内存列表,然后可以根据标识信息和内存列表,将JSON数据写入目标磁盘。
需要说明的是,在本公开的实施例中,客户端在对待递送内容进行缓存时,具体可以为对待递送内容进行二级缓存,即内存缓存和磁盘缓存。也就是说,客户端在获取服务器下发的待递送内容对应的JSON数据之后,可以依次将JSON数据缓存至内存和磁盘中。
进一步地,在本公开的实施例中,客户端在按照标识信息对JSON数据进行分组存储时,可以将标识信息相同的JSON数据存储至相同的列表中,从而可以实现JSON数据的分组存储。例如,将标识信息为1的JSON数据全部缓存至内存列表1中,将标识信息为2的JSON数据全部缓存至内存列表2中。也就是说,在本公开中,客户端可以按照标识信息,将待递送内容对应的JSON数据存储至不同的内存列表中,从而完成对JSON数据的内存缓存。
需要说明的是,在本公开的实施例中,客户端在按照标识信息,将待递送内容对应的JSON数据存储至不同的内存列表中之后,便可以继续对待递送内容对应的JSON数据进行磁盘缓存,即按照标识信息和内存列表,将JSON数据写入至目标磁盘中。
进一步地,在本公开的实施例中,客户端在将JSON数据写入至目标磁盘中时,可以在建立内存列表之后,添加任务进一个队列,从而可以开启一个子线程异步地将对应标识信息的内存列表数据拷贝进行编码并写入目标磁盘.避免阻塞主线程。
步骤103、根据JSON数据,对待递送内容进行视频预加载处理,获得预加载视频数据,并确定预加载视频数据对应的地址信息;其中,预加载视频数据用于对待递送内容进行视频数据的部分缓存。
在本公开的实施例中,客户端在按照标识信息对JSON数据进行分组存储,获得标识信息对应的内存列表,并根据标识信息和内存列表,将JSON数据写入目标磁盘之后,便可以根据JSON数据,对待递送内容进行视频预加载处理,获得预加载视频数据,并确定预加载视频数据对应的地址信息。
需要说明的是,在本公开的实施例中,本公开实施例提出的内容的缓存方法,既可以包括对待递送内容对应的JSON数据的缓存,也可以包括对待递送内容对应的视频数据的缓存。
需要说明的是,在本公开的实施例中,客户端可以先根据JSON数据,对待递送内容进行视频预加载处理,从而可以获得加载后的预加载视频数据,其中,预加载视频数据并不是待递送内容对应的全部视频数据,而是待递送内容对应的全部视频数据中的部分视频数据。也就是说,在本公开中,预加载视频数据可以用于对待递送内容进行视频数据的部分缓存。
进一步地,在本公开的实施例中,客户端可以按照预设数据参数进行视频数据的加载,可以使获得的预加载视频数据满足一定的数据大小,例如,待递送内容对应的全部视频数据的大小为3M,服务器下发的预加载大小字段,即预设数据参数是800k,那么客户端可以按照预设数据参数请求待递送内容对应的前800k的视频数据到本地,从而可以保证用户展示开屏时前几秒能流畅的播放,后面的内容再去实时地请求,这样节省了用户的流量。
需要说明的是,在本公开的实施例中,客户端在完成预加载视频数据的获取之后,可以先确定出预加载视频数据对应的地址信息,从而便可以进一步根据地址信息进行内存列表和目标磁盘的更新。
步骤104、按照标识信息将地址信息存储至内存列表和目标磁盘,以完成JSON数据和预加载视频数据的缓存。
在本公开的实施例中,客户端在根据JSON数据,对待递送内容进行视频预加载处理,获得预加载视频数据,并确定预加载视频数据对应的地址信息之后,可以按照标识信息将地址信息存储至内存列表和目标磁盘,从而便可以完成JSON数据和预加载视频数据的缓存。
进一步地,在本公开的实施例中,客户端在对JSON数据进行缓存处理时,可以基于标识信息,依次将JSON数据存储至内存列表和目标磁盘中;相应地,客户端在视频数据进行缓存处理时,也可以基于标识信息,依次将视频缓存数据对应的地址信息存储至内存列表和目标磁盘中。
需要说明的是,在本公开的实施例中,客户端可以利用一个专门队列负责处理原生开屏广告的视频数据的加载。
进一步地,在本公开的实施例中,在完成预加载视频数据的获取并确定出预加载视频数据的地址信息之后,客户端可以会在对应的JSON数据里记录地址信息,也就是说,客户端可以根据标识信息将地址信息添加至对应的内存列表中,然后再根据地址信息更新目标磁盘。
需要说明的是,在本公开的实施例中,内容的缓存方式可以为包括内存缓存和磁盘缓存的二级缓存,待递送内容的缓存内容可以包括JSON数据和视频数据,因此,客户端在按照标识信息,依次将JSON数据和视频数据的地址信息存储至内存列表和目标磁盘之后,便可以实现内容的缓存。
本公开实施例提出的一种内容的缓存方法,在缓存时,客户端获取待递送内容对应的JSON数据,并确定JSON数据对应的标识信息;按照标识信息对JSON数据进行分组存储,获得标识信息对应的内存列表,并根据标识信息和内存列表,将JSON数据写入目标磁盘;根据JSON数据,对待递送内容进行视频预加载处理,获得预加载视频数据,并确定预加载视频数据对应的地址信息;其中,预加载视频数据用于对待递送内容进行视频数据的部分缓存;按照标识信息将地址信息存储至内存列表和目标磁盘,以完成JSON数据和预加载视频数据的缓存。也就是说,在本公开中,客户端既可以根据待递送内容对应的数据的标识信息将待递送内容对应的JSON数据和预加载视频数据异步缓存至内存列表和目标磁盘中,客户端也可以根据待递送内容对应的数据的标识信息从内存列表或目标磁盘中读取待递送内容对应的JSON数据和预加载视频数据。由此可见,本公开提出的内容的缓存和读取方法,可以基于待递送内容对应的标识信息,实现待递送内容对应的数据的分表存储和定向读取。从而可以提高客户端的启动速度,同时解决原生开屏广告读取延迟的问题,提升了原生开屏广告的流畅度。
基于上述实施例,在本公开的另一个实施例中,客户端在按照标识信息对JSON数据进行分组存储,获得标识信息对应的内存列表时,可以将标识信息相同的JSON数据存储至同一个列表中,从而便可以生成标识信息对应的内存列表。
需要说明的是,在本公开的实施例中,一个标识信息对应一个内存列表。具体地,JSON数据的标识信息可以为splash_id的id尾号,也可以为其他标识字符,本公开实施例不作具体限定。例如,如果将splash_id的id尾号作为相应的JSON数据的标识信息,那么,内存列表1中存储有splash_id为100000001、100000011、100001001等的标识信息为1的JSON数据,内存列表2中存储有splash_id为100000002、100000012、100001002等的标识信息为2的JSON数据。
在本公开的实施例中,进一步地,客户端在根据JSON数据,对待递送内容进行视频预加载处理,获得预加载视频数据时,可以基于JSON数据,按照预设数据参数,对待递送内容对应的全部视频数据中的部分视频数据进行预加载,从而便可以获得预加载视频数据。
需要说明的是,在本公开的实施例中,预设数据参数可以用于对进行预加载的视频数据的数据大小进行限定,例如,预设数据参数可以为字段大小上限值,因此,客户端按照预设数据参数进行视频数据的加载所获得的预加载视频数据可以满足一定的数据大小。其中,预设数据参数可以由服务器进行下发。具体地,例如,待递送内容对应的全部视频数据的大小为2M,服务器下发的预设数据参数是810k,那么客户端便可以按照预设数据参数请求待递送内容对应的前810k的视频数据到本地,从而可以保证用户展示开屏时前几秒能流畅的播放,后面的内容再去实时地请求,这样节省了用户的流量。
在本公开的实施例中,进一步地,客户端在按照标识信息将地址信息存储至内存列表和目标磁盘之后,客户端还可以遍历内存列表,对内存列表中的、未存储地址信息的JSON数据进行视频预加载处理,以获得待递送内容对应的全部视频数据。
需要说明的是,在本公开的实施例中,由于预加载视频数据为待递送内容对应的全部视频数据中的部分视频数据,因此,客户端在完成预加载视频数据的缓存,并将预加载视频数据对应的地址信息存储至内存列表之后,可以遍历所有内存列表,如果内存列表中有无对应的存储地址信息的JSON数据,则针对该JSON数据继续进行待递送内容的视频预加载处理,直到待递送内容对应的全部JSON数据都缓存有对应的视频数据,从而便可以获得待递送内容对应的全部视频数据。也就是说,在本公开中,客户端在完成预加载视频数据的缓存之后,可以尝试遍历内存中所有的数据,对没有缓存过视频的数据进行视频预加载任务,本地已经有缓存视频的就不再执行此任务。
在本公开的实施例中,进一步地,客户端在按照标识信息将地址信息存储至内存列表和目标磁盘之后,客户端还可以遍历内存列表,对内存列表中的已过期数据进行删除处理,从而可以获得更新后的内存列表,然后可以按照更新后的内存列表更新目标磁盘。
需要说明的是,在本公开的实施例中,客户端在完成预加载视频数据的缓存,并将预加载视频数据对应的地址信息存储至内存列表之后,可以遍历所有内存列表,如果内存列表中有过期的JSON数据,则将过期的JSON数据进行删除,从而可以完成对内存列表的更新,在对内存列表进行更新之后,客户端还以利用更新后的内存列表对目标磁盘进行更新,以删除目标磁盘中缓存的过期的JSON数据。也就是说,在本公开中,客户端在完成预加载视频数据的缓存之后,可以尝试遍历内存中所有的数据,对已经过期的数据进行删除处理,已更新内存缓存,然后再异步地更新磁盘缓存,从而可以完成待递送内容缓存的更新。
本公开实施例提出的一种内容的缓存方法,在缓存时,客户端获取待递送内容对应的JSON数据,并确定JSON数据对应的标识信息;按照标识信息对JSON数据进行分组存储,获得标识信息对应的内存列表,并根据标识信息和内存列表,将JSON数据写入目标磁盘;根据JSON数据,对待递送内容进行视频预加载处理,获得预加载视频数据,并确定预加载视频数据对应的地址信息;其中,预加载视频数据用于对待递送内容进行视频数据的部分缓存;按照标识信息将地址信息存储至内存列表和目标磁盘,以完成JSON数据和预加载视频数据的缓存。也就是说,在本公开中,客户端既可以根据待递送内容对应的数据的标识信息将待递送内容对应的JSON数据和预加载视频数据异步缓存至内存列表和目标磁盘中,客户端也可以根据待递送内容对应的数据的标识信息从内存列表或目标磁盘中读取待递送内容对应的JSON数据和预加载视频数据。由此可见,本公开提出的内容的缓存和读取方法,可以基于待递送内容对应的标识信息,实现待递送内容对应的数据的分表存储和定向读取。从而可以提高客户端的启动速度,同时解决原生开屏广告读取延迟的问题,提升了原生开屏广告的流畅度。
基于上述实施例,在本公开的再一实施例中,继续参见图7,图7是本公开实施例提出的内容的读取方法的流程示意图,如图7所示,客户端读取待递送内容的方法可以包括以下步骤:
步骤201、在接收开启指令之后,确定待递送内容对应的JSON数据的标识信息。
在本公开的实施例中,客户端在接收开启指令之后,可以先确定出待递送内容对应的JSON数据的标识信息。其中,客户端可以通过多种方式接收开启指令,例如,客户端可以通过终端接收到的用户的触控操作接收开启指令,或者,客户端可以通过终端预先设置的开启机制的触发接收开启指令。
需要说明的是,在本公开的实施例中,客户端在接收开启指令之后,便可以先确定出需要进行展示的待递送内容对应的JSON数据的标识信息。具体地,在本公开中,客户端在进行读取待递送内容时所使用的标识信息的定义策略,与客户端对待递送内容进行缓存时定义标识信息的方式是相同的。也就是说,虽然客户端可以通过多种方式确定待递送内容对应的JSON数据的标识信息,然而,客户端在进行内容的缓存和读取时,需要通过相同的方式确定JSON数据的标识信息。
进一步地,在本公开的实施例中,客户端可以先确定出待递送内容的JSON数据对应的标识信息。具体地,客户端可以读取JSON数据中的splash_id,然后基于splash_id确定出标识信息。
需要说明的是,在本公开的实施例中,客户端在基于splash_id获取标识信息时,可以将splash_id的id尾号作为相应地JSON数据的标识信息。例如,splash_id为100000001的数据对应的标识信息为1,splash_id为100000002的数据对应的标识信息为2。
步骤202、若标识信息对应的内存列表中存在预加载视频数据对应的地址信息,则从内存列表中读取地址信息,并根据地址信息读取预加载视频数据;其中,预加载视频数据用于对待递送内容进行部分读取。
在本公开的实施例中,客户端在确定待递送内容对应的JSON数据的标识信息之后,如果标识信息对应的内存列表中存在预加载视频数据对应的地址信息,则从内存列表中读取地址信息,并根据地址信息读取预加载视频数据。
需要说明的是,在本公开的实施例中,预加载视频数据可以用于对待递送内容进行部分读取。也就是说,在本公开的实施例中,预加载视频数据并不是待递送内容对应的全部视频数据,而是待递送内容对应的全部视频数据中的部分视频数据。即在本公开中,客户端可以通过预加载视频数据的读取,对待递送内容进行视频数据进行部分获取。
进一步地,在本公开的实施例中,客户端在确定待递送内容对应的JSON数据的标识信息之后,可以按照标识信息对相应地内存列表进行遍历,从而确定出内存列表中是否存在预加载视频数据对应的地址信息。
需要说明的是,在本公开的实施例中,客户端在对待递送内容进行缓存时,具体可以为对待递送内容进行二级缓存,即内存缓存和磁盘缓存。也就是说,客户端在获取服务器下发的待递送内容对应的JSON数据之后,可以依次将JSON数据缓存至内存和磁盘中。
需要说明的是,在本公开的实施例中,本公开实施例提出的内容的缓存方法,既可以包括对待递送内容对应的JSON数据的缓存,也可以包括对待递送内容对应的视频数据的缓存。
进一步地,在本公开的实施例中,客户端在按照标识信息对JSON数据进行分组存储时,将标识信息相同的JSON数据存储至相同的列表中,因此,客户端在进行内容的读取时,可以先根据标识信息确定对应的内存列表,然后对内存列表进行查询处理。例如,当JSON数据的标识信息为1时,对内存列表1中存储的数据进行查询;当JSON数据的标识信息为2时,对内存列表2中存储的数据进行查询。也就是说,在本公开中,客户端可以按照标识信息,从与标识信息对应的内存列表进行数据的读取,而不需要遍历待递送内容对应的全部数据。
需要说明的是,在本公开的实施例中,客户端在按照标识信息对相应地内存列表进行查询之后,如果确定出内存列表中存在预加载视频数据对应的地址信息,那么客户端便可以直接从内存列表中读取预加载视频数据对应的地址信息,然后便可以根据地址信息进行预加载视频数据的读取。
步骤203、若标识信息对应的内存列表中不存在预加载视频数据对应的地址信息,则从目标磁盘中读取地址信息,并根据地址信息读取预加载视频数据。
在本公开的实施例中,客户端在确定待递送内容对应的JSON数据的标识信息之后,如果标识信息对应的内存列表中不存在预加载视频数据对应的地址信息,则从目标磁盘中读取地址信息,并根据地址信息读取预加载视频数据。
进一步地,在本公开的实施例中,客户端在对JSON数据进行缓存处理时,可以基于标识信息,依次将JSON数据存储至内存列表和目标磁盘中;相应地,客户端在视频数据进行缓存处理时,也可以基于标识信息,依次将视频缓存数据对应的地址信息存储至内存列表和目标磁盘中。
需要说明的是,在本公开的实施例中,内容的缓存方式可以为包括内存缓存和磁盘缓存的二级缓存,待递送内容的缓存内容可以包括JSON数据和视频数据,因此,客户端在按照标识信息,依次将JSON数据和视频数据的地址信息存储至内存列表和目标磁盘之后,便可以实现内容的缓存。
进一步地,在本公开的实施例中,客户端在按照标识信息对相应地内存列表进行查询之后,如果确定出内存列表中不存在预加载视频数据对应的地址信息,那么客户端便无法直接从内存列表中读取预加载视频数据对应的地址信息,然而,正是由于客户端在对待递送内容进行缓存时,具体可以为对待递送内容进行存缓存和磁盘缓存的二级缓存,因此,客户端无法从内存列表中读取预加载视频数据对应的地址信息时,可以再从目标磁盘中读取该地址信息,然后便可以根据地址信息进行预加载视频数据的读取。
通过上述步骤201至步骤203的内容的读取方法可以知道,在本公开中,客户端在收到开启指令之后,客户端的开屏模块可以开始根据开屏模块的内部频控逻辑挑选出可以展示的待递送内容的splash_id列表,客户端查询端上标识信息对应的视频数据是否已经下载好并具备展示条件,此时优先按照标识信息读取对应编号的内存列表(开销较小),当内存列表中不存在预加载视频数据时,再尝试读取磁盘缓存中的列表数据(开销较大),从而可以获得预加载视频数据对应的地址信息,并读取预加载视频数据。
需要说明的是,在本公开的实施例中,客户端在从目标磁盘中读取与标识信息对应的地址信息之后,也可以按照该地址信息对与标识信息对应的内存列表进行更新,这样在下一次对该标识信息对应的预加载视频数据进行读取时,变不需要再进行目标磁盘的读取,从而可以节省开销。
本公开实施例提出的一种内容的读取方法,在读取时,客户端在接收开启指令之后,确定待递送内容对应的JSON数据的标识信息;若标识信息对应的内存列表中存在预加载视频数据对应的地址信息,则从内存列表中读取地址信息,并根据地址信息读取预加载视频数据;其中,预加载视频数据用于对待递送内容进行部分读取;若标识信息对应的内存列表中不存在预加载视频数据对应的地址信息,则从目标磁盘中读取地址信息,并根据地址信息读取预加载视频数据。也就是说,在本公开中,客户端既可以根据待递送内容对应的数据的标识信息将待递送内容对应的JSON数据和预加载视频数据异步缓存至内存列表和目标磁盘中,客户端也可以根据待递送内容对应的数据的标识信息从内存列表或目标磁盘中读取待递送内容对应的JSON数据和预加载视频数据。由此可见,本公开提出的内容的缓存和读取方法,可以基于待递送内容对应的标识信息,实现待递送内容对应的数据的分表存储和定向读取。从而可以提高客户端的启动速度,同时解决原生开屏广告读取延迟的问题,提升了原生开屏广告的流畅度。
基于上述实施例,在本公开的又一实施例中,客户端在确定待递送内容对应的JSON数据的标识信息之后,客户端读取待递送内容的方法还可以包括以下步骤:
步骤204、检测当前状态参数。
在本公开的实施例中,客户端可以在确定待递送内容对应的JSON数据的标识信息之后,可以先检测客户端的当前状态参数。
进一步地,在本公开的实施例中,客户端需要先对客户端的状态进行检测,获得当前状态参数,从而进一步根据当前状态参数确定是否可以进行待递送内容的展示。
也就是说,在本公开的实施例中,当前状态参数可以用于对客户端是否具备展示待递送内容的条件进行确定。
需要说明的是,在本公开的实施例中,当前状态参数可以包括但不限于数据加载状态、数据失效状态、展示时机状态以及信息流的插入状态等多种状态参数中的至少一个。
进一步地,在本公开的实施例中,当前状态参数中的数据加载状态可以表征客户端是否已经加载完成待递送内容对应的视频数据;当前状态参数中的数据失效状态可以对客户端缓存的数据是否过期或失效进行确定;当前状态参数中的展示时机状态可以对客户端是否处于展示时机进行确定;当前状态参数中的信息流的插入状态可以用于客户端确定信息流是否插入待递送内容。
步骤205、若当前状态参数满足预设展示条件,则判定进行预加载视频数据的读取流程;其中,预设展示条件用于判断是否展示预加载视频数据对应的待递送内容视频。
需要说明的是,在本公开的实施例中,客户端可以预先设置有是否可以展示待递送内容的判断条件,即预设展示条件。也就是说,在本公开的实施例中,预设展示条件用于客户端基于当前状态参数对是否展示预加载视频数据对应的待递送内容视频。
进一步地,在本公开的实施例中,客户端在检测获得当前状态参数之后,可以先根据当前状态参数和预设展示条件对是否可以进行待递送内容的展示进行判断,如果判定结果为可以进行待递送内容的展示,那么客户端便可以进行预加载视频数据的读取流程,即可以执行上述步骤202或203。例如,客户端检测获得的当前状态参数满足预加载视频数据已经加载成功、数据没有失效、客户端处于展示时机以及当前信息流允许待递送内容的插入等预设展示条件,那么客户端便可以进一步读取预加载视频。
在本公开的实施例中,进一步地,客户端在根据地址信息读取预加载视频数据之后,客户端读取待递送内容的方法还可以包括以下步骤:
步骤206、将预加载视频数据嵌入至当前信息流中,获得待展示信息流。
在本公开的实施例中,客户端在读取预加载视频数据之后,便可以将预加载视频数据嵌入至当前信息流中,从而便可以获得待展示信息流。
需要说明的是,在本公开的实施例中,客户端在确定可以进行待递送内容的展示,并读取对应的预加载视频数据之后,便可以将预加载视频数据插入至原有的待展示的当前信息流之中,获得待展示信息流。其中,待展示是信息流可以将待递送内容与当前信息流进行无缝平滑的拼接并展示。
进一步地,在本公开的实施例中,待递送内容的展示可以分为开屏阶段和信息流阶段。具体地,从开屏阶段无缝衔接过渡到信息流阶段的方法在于视觉切换,需要从显示上调整视频的显示层级来实现。
步骤207、响应开启指令,播放待展示信息流对应的目标视频。
在本公开的实施例中,客户端在将预加载视频数据嵌入至当前信息流中,获得待展示信息流之后,可以响应开启指令,播放待展示信息流对应的目标视频,从而便可以实现待递送内容的展示。
进一步地,在本公开的实施例中,由于待展示信息流是客户端将预加载视频数据嵌入至当前信息流中获得的,因此,待展示信息流对应的目标视频可以包括预加载视频数据对应的待递送内容视频,和当前信息流对应的自然信息流视频。
需要说明的是,在本公开的实施例中,待递送内容的展示可以分为开屏阶段和信息流阶段,即待递送内容可以被展示为待递送内容视频和自然信息流视频。
进一步地,在本公开的实施例中,开屏阶段,即待递送内容视频,可以为一个纯净的视频展示,图8为开屏阶段的示意图,如图8所示,在展示原生开屏广告的开屏阶段,客户端展示的是一个纯净的视频界面,在该视频界面中,左上角显示有客户端的标识“Q”,右上角有跳过按钮。
进一步地,在本公开的实施例中,信息流阶段,即自然信息流视频,其各个广告组件交互和普通信息流广告保持了一致。具体地,客户端在展示信息流阶段时,可以实时的更新自然信息流视频的评论数量和点赞数量,这是由于预加载的视频数据是很之前完成加载的。同时,客户端在展示信息流阶段时,还可以强制打开当前的隐私状态和评论开关等限制,从而可以防止投放时间开始时出现异常case。
需要说明的是,在本公开的实施例中,由于待展示信息流是客户端将预加载视频数据嵌入至当前信息流中获得的,即待递送内容已经在feed流中,因此,客户端基于播放待展示信息流对应的目标视频进行待递送内容的展示时,可以通过终端接收到的上滑操作或者下滑操作,实现待递送内容视频和自然信息流视频之间的切换。
也就是说,在播放待展示信息流对应的目标视频中的待递送内容视频时,如果客户端通过终端接收到用户的上滑操作,那么客户端可以将待递送内容视频切换为自然信息流视频继续展示;在播放待展示信息流对应的目标视频中的自然信息流视频时,如果客户端通过终端接收到用户的下滑操作,那么客户端可以将自然信息流视频切换为待递送内容视频继续展示。从而可以实现待递送内容视频和自然信息流视频之间的平滑过渡,即实现开屏阶段和信息流阶段无缝拼接。
在本公开的实施例中,进一步地,客户端在根据地址信息读取预加载视频数据之后,客户端可以先对JSON数据进行结构转换处理,获得转换后的JSON数据,然后将转换后的JSON数据嵌入至当前信息流中。
在本公开的实施例中,进一步地,客户端在播放待展示信息流对应的目标视频之前,还可以在接收开启指令之后,先获取预存模拟启动图像和/或预存模拟启动视频,然后便可以响应开启指令,显示预存模拟启动图像和/或预存模拟启动视频。
需要说明的是,在本公开的实施例中,客户端可以预先存储有预存模拟启动图像和/或预存模拟启动视频,其中,预存模拟启动图像和/或预存模拟启动视频可以用于避免播放卡顿的产生。
进一步地,在本公开的实施例中,为了避免播放卡顿造成的空feed的展示,客户端在收到开启指令并进行启动之后,需要通过预存模拟启动图像和/或预存模拟启动视频的展示,形成正在启动的假象。
需要说明的是,在本公开的实施例中,客户端在响应开启指令,显示预存模拟启动图像和/或预存模拟启动视频之后,一旦准备好目标视频的展示,客户端便可以在播放待展示信息流对应的目标视频时,将预存模拟启动图像和/或预存模拟启动视频移除,从而可以进入待递送内容的展示界面。
图9为预存模拟启动图像的示意图,如图9所示,客户端A在接收待开启指令之后,在启动时,先展示一个预存模拟启动图像,客户端A通过该存模拟启动图像的显示,向用户展示出客户端A还在启动中的状态。
需要说明的是,现有技术中,会把所有的本地缓存待递送内容的数据在load方法中读入内存,所以在统计上会影响启动耗时的统计,实际上这一步骤可以做成懒加载,在软件开发工具包(Software Development Kit,SDK)调用pick方法选取原生开屏数据的时候进行,也就是说,现有技术中数据读取在开屏SDK启动之前进行,而本公开则是在SDK启动之后进行。
进一步地,由于一次pick时其实不需要读取所有的缓存数据,因此本本公开提出了分表存储的缓存方法和定向读取的读取方法,也就是说,待递送内容对应的每个计划有一个splash_id,现有技术中所有的splash_id相关的数据都是存在一起的,而本公开中是分开存储,如将尾号为1的数据缓存在一个内存列表,将尾号为2的数据缓存在另一个内存列表,即可以将全部数据就拆成10个不同的内存列表进行缓存,当SDK向客户端询问123456789号待递送内容是否可以展示时,客户端就去定向读取与尾号为9对应的内存列表,并从该内存列表中查询123456789,从而可以减小了一次读取的性能开销。
由此可见,本公开实施例中提出的内容的缓存方法和读取方法,可以基于待递送内容对应的标识信息,实现待递送内容对应的数据的分表存储和定向读取。
本公开实施例提出的一种内容的读取方法,在读取时,客户端在接收开启指令之后,确定待递送内容对应的JSON数据的标识信息;若标识信息对应的内存列表中存在预加载视频数据对应的地址信息,则从内存列表中读取地址信息,并根据地址信息读取预加载视频数据;其中,预加载视频数据用于对待递送内容进行部分读取;若标识信息对应的内存列表中不存在预加载视频数据对应的地址信息,则从目标磁盘中读取地址信息,并根据地址信息读取预加载视频数据。也就是说,在本公开中,客户端既可以根据待递送内容对应的数据的标识信息将待递送内容对应的JSON数据和预加载视频数据异步缓存至内存列表和目标磁盘中,客户端也可以根据待递送内容对应的数据的标识信息从内存列表或目标磁盘中读取待递送内容对应的JSON数据和预加载视频数据。由此可见,本公开提出的内容的缓存和读取方法,可以基于待递送内容对应的标识信息,实现待递送内容对应的数据的分表存储和定向读取。从而可以提高客户端的启动速度,同时解决原生开屏广告读取延迟的问题,提升了原生开屏广告的流畅度。
本公开实施例提供一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时实现如上所述的内容的缓存和读取方法。
具体来讲,本公开实施例中的一种内容的缓存和读取方法对应的程序指令可以被存储在光盘,硬盘,U盘等存储介质上,当存储介质中的与一种内容的缓存方法对应的程序指令被一客户端读取或被执行时,包括如下步骤:
获取待递送内容对应的JSON数据,并确定所述JSON数据对应的标识信息;
按照所述标识信息对所述JSON数据进行分组存储,获得所述标识信息对应的内存列表,并根据所述标识信息和所述内存列表,将所述JSON数据写入目标磁盘;
根据所述JSON数据,对所述待递送内容进行视频预加载处理,获得预加载视频数据,并确定所述预加载视频数据对应的地址信息;其中,所述预加载视频数据用于对所述待递送内容进行视频数据的部分缓存;
按照所述标识信息将所述地址信息存储至所述内存列表和所述目标磁盘,以完成所述JSON数据和所述预加载视频数据的缓存。
当存储介质中的与一种内容的读取方法对应的程序指令被一客户端读取或被执行时,包括如下步骤:
在接收开启指令之后,确定待递送内容对应的JSON数据的标识信息;
若所述标识信息对应的内存列表中存在预加载视频数据对应的地址信息,则从所述内存列表中读取所述地址信息,并根据所述地址信息读取所述预加载视频数据;其中,所述预加载视频数据用于对所述待递送内容进行部分读取;
若所述标识信息对应的内存列表中不存在所述预加载视频数据对应的地址信息,则从目标磁盘中读取所述地址信息,并根据所述地址信息读取所述预加载视频数据。
本领域内的技术人员应明白,本公开可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的实现流程示意图和/或方框图来描述的。应理解可由计算机程序指令实现流程示意图和/或方框图中的每一流程和/或方框、以及实现流程示意图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在实现流程示意图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在实现流程示意图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本公开的较佳实施例而已,并非用于限定本公开的保护范围。

Claims (20)

1.一种内容的缓存方法,其特征在于,所述方法包括:
获取待递送内容对应的JS对象简谱JSON数据,并确定所述JSON数据对应的标识信息;
按照所述标识信息对所述JSON数据进行分组存储,获得所述标识信息对应的内存列表,并根据所述标识信息和所述内存列表,将所述JSON数据写入目标磁盘;
根据所述JSON数据,对所述待递送内容进行视频预加载处理,获得预加载视频数据,并确定所述预加载视频数据对应的地址信息;其中,所述预加载视频数据用于对所述待递送内容进行视频数据的部分缓存;
按照所述标识信息将所述地址信息存储至所述内存列表和所述目标磁盘,以完成所述JSON数据和所述预加载视频数据的缓存。
2.根据权利要求1所述的方法,其特征在于,所述按照所述标识信息对所述JSON数据进行分组存储,获得所述标识信息对应的内存列表,包括:
将所述标识信息相同的所述JSON数据存储至同一个列表中,生成所述标识信息对应的所述内存列表;其中,一个标识信息对应一个内存列表。
3.根据权利要求1所述的方法,其特征在于,所述根据所述JSON数据,对所述待递送内容进行视频预加载处理,获得预加载视频数据,包括:
基于所述JSON数据,按照预设数据参数,对所述待递送内容对应的全部视频数据中的部分视频数据进行预加载,获得所述预加载视频数据。
4.根据权利要求3所述的方法,其特征在于,所述按照所述标识信息将所述地址信息存储至所述内存列表和所述目标磁盘之后,所述方法还包括:
遍历所述内存列表,对所述内存列表中的、未存储所述地址信息的所述JSON数据进行所述视频预加载处理,以获得所述待递送内容对应的所述全部视频数据。
5.根据权利要求3所述的方法,其特征在于,所述按照所述标识信息将所述地址信息存储至所述内存列表和所述目标磁盘之后,所述方法还包括:
遍历所述内存列表,对所述内存列表中的已过期数据进行删除处理,以获得更新后的内存列表;
按照所述更新后的内存列表更新所述目标磁盘。
6.一种内容的读取方法,其特征在于,所述方法包括:
在接收开启指令之后,确定待递送内容对应的JSON数据的标识信息;
若所述标识信息对应的内存列表中存在预加载视频数据对应的地址信息,则从所述内存列表中读取所述地址信息,并根据所述地址信息读取所述预加载视频数据;其中,所述预加载视频数据用于对所述待递送内容进行部分读取;
若所述标识信息对应的内存列表中不存在所述预加载视频数据对应的地址信息,则从目标磁盘中读取所述地址信息,并根据所述地址信息读取所述预加载视频数据。
7.根据权利要求6所述的方法,其特征在于,所述从目标磁盘中读取所述地址信息,并根据所述地址信息读取所述预加载视频数据之后,所述方法还包括:
根据所述标识信息和所述地址信息,更新所述内存列表。
8.根据权利要求6所述的方法,其特征在于,所述确定待递送内容对应的JSON数据的标识信息之后,所述方法还包括:
检测当前状态参数;
若所述当前状态参数满足预设展示条件,则判定进行所述预加载视频数据的读取流程;其中,所述预设展示条件用于判断是否展示所述预加载视频数据对应的待递送内容视频。
9.根据权利要求6所述的方法,其特征在于,所述根据所述地址信息读取所述预加载视频数据之后,所述方法还包括:
将所述预加载视频数据嵌入至当前信息流中,获得待展示信息流;
响应所述开启指令,播放所述待展示信息流对应的目标视频。
10.根据权利要求6所述的方法,其特征在于,所述根据所述地址信息读取所述预加载视频数据之后,所述方法还包括:
对所述JSON数据进行结构转换处理,获得转换后的JSON数据;
将所述转换后的JSON数据嵌入至所述当前信息流中。
11.根据权利要求9所述的方法,其特征在于,所述播放所述待展示信息流对应的目标视频之前,所述方法还包括:
在接收开启指令之后,获取预存模拟启动图像和/或预存模拟启动视频;
响应所述开启指令,显示所述预存模拟启动图像和/或所述预存模拟启动视频。
12.一种第一客户端,其特征在于,所述第一客户端包括:获取单元、第一确定单元、写入单元以及存储单元,
所述获取单元,用于获取待递送内容对应的JSON数据;
所述第一确定单元,用于确定所述JSON数据对应的标识信息;
所述获取单元,还用于按照所述标识信息对所述JSON数据进行分组存储,获得所述标识信息对应的内存列表;
所述写入单元,用于根据所述标识信息和所述内存列表,将所述JSON数据写入目标磁盘;
所述获取单元,还用于根据所述JSON数据,对所述待递送内容进行视频预加载处理,获得预加载视频数据;其中,所述预加载视频数据用于对所述待递送内容进行视频数据的部分缓存;
所述第一确定单元,还用于确定所述预加载视频数据对应的地址信息;
所述存储单元,用于按照所述标识信息将所述地址信息存储至所述内存列表和所述目标磁盘,以完成所述JSON数据和所述预加载视频数据的缓存。
13.根据权利要求12所述的第一客户端,其特征在于,
所述获取单元,具体用于将所述标识信息相同的所述JSON数据存储至同一个列表中,生成所述标识信息对应的所述内存列表;其中,一个标识信息对应一个内存列表;
所述获取单元,还具体用于基于所述JSON数据,按照预设数据参数,对所述待递送内容对应的全部视频数据中的部分视频数据进行预加载,获得所述预加载视频数据。
14.根据权利要求13所述的第一客户端,其特征在于,所述第一客户端还包括:第一更新单元,
所述获取单元,还用于按照所述标识信息将所述地址信息存储至所述内存列表和所述目标磁盘之后,遍历所述内存列表,对所述内存列表中的、未存储所述地址信息的所述JSON数据进行所述视频预加载处理,以获得所述待递送内容对应的所述全部视频数据;
所述第一更新单元,用于按照所述标识信息将所述地址信息存储至所述内存列表和所述目标磁盘之后,遍历所述内存列表,对所述内存列表中的已过期数据进行删除处理,以获得更新后的内存列表;以及按照所述更新后的内存列表更新所述目标磁盘。
15.一种第二客户端,其特征在于,所述第二客户端包括:第二确定单元和读取单元,
所述第二确定单元,用于在接收开启指令之后,确定待递送内容对应的JSON数据的标识信息;
所述读取单元,用于若所述标识信息对应的内存列表中存在预加载视频数据对应的地址信息,则从所述内存列表中读取所述地址信息,并根据所述地址信息读取所述预加载视频数据;其中,所述预加载视频数据用于对所述待递送内容进行部分读取;
所述读取单元,还用于若所述标识信息对应的内存列表中不存在所述预加载视频数据对应的地址信息,则从目标磁盘中读取所述地址信息,并根据所述地址信息读取所述预加载视频数据。
16.根据权利要求15所述的第二客户端,其特征在于,所述第二客户端还包括:第二更新单元、检测单元以及判断单元,
所述第二更新单元,用于从目标磁盘中读取所述地址信息,并根据所述地址信息读取所述预加载视频数据之后,根据所述标识信息和所述地址信息,更新所述内存列表;
所述检测单元,用于确定待递送内容对应的JSON数据的标识信息之后,检测当前状态参数;
所述判断单元,用于若所述当前状态参数满足预设展示条件,则判定进行所述预加载视频数据的读取流程;其中,所述预设展示条件用于判断是否展示所述预加载视频数据对应的待递送内容视频。
17.根据权利要求15所述的第二客户端,其特征在于,所述第二客户端还包括:嵌入单元、播放单元以及转换单元,
所述嵌入单元,用于根据所述地址信息读取所述预加载视频数据之后,将所述预加载视频数据嵌入至当前信息流中,获得待展示信息流;
所述播放单元,用于响应所述开启指令,播放所述待展示信息流对应的目标视频;
所述转换单元,用于根据所述地址信息读取所述预加载视频数据之后,对所述JSON数据进行结构转换处理,获得转换后的JSON数据;
所述嵌入单元,还用于将所述转换后的JSON数据嵌入至所述当前信息流中。
18.一种第一客户端,其特征在于,所述第一客户端包括第一处理器、存储有所述第一处理器可执行指令的第一存储器,当所述指令被所述第一处理器执行时,实现如权利要求1至5任一项所述的方法。
19.一种第二客户端,其特征在于,所述第二客户端包括第二处理器、存储有所述第二处理器可执行指令的第二存储器,当所述指令被所述第二处理器执行时,实现如权利要求6至11任一项所述的方法。
20.一种存储介质,其上存储有程序,应用于第一客户端和第二客户端中,其特征在于,所述程序被处理器执行时,用于实现如权利要求1至11任一项所述的方法。
CN201910919461.1A 2019-09-26 2019-09-26 内容的缓存和读取方法、客户端及存储介质 Active CN112565870B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201910919461.1A CN112565870B (zh) 2019-09-26 2019-09-26 内容的缓存和读取方法、客户端及存储介质
PCT/CN2020/109198 WO2021057325A1 (zh) 2019-09-26 2020-08-14 内容的缓存和读取方法、客户端及存储介质
US17/764,516 US11907121B2 (en) 2019-09-26 2020-08-14 Methods for caching and reading content, client, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910919461.1A CN112565870B (zh) 2019-09-26 2019-09-26 内容的缓存和读取方法、客户端及存储介质

Publications (2)

Publication Number Publication Date
CN112565870A CN112565870A (zh) 2021-03-26
CN112565870B true CN112565870B (zh) 2021-09-14

Family

ID=75029994

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910919461.1A Active CN112565870B (zh) 2019-09-26 2019-09-26 内容的缓存和读取方法、客户端及存储介质

Country Status (3)

Country Link
US (1) US11907121B2 (zh)
CN (1) CN112565870B (zh)
WO (1) WO2021057325A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115314718B (zh) * 2021-05-07 2023-07-14 北京字节跳动网络技术有限公司 一种直播数据处理方法、装置、设备及介质
CN115086706B (zh) * 2022-08-19 2023-01-06 摩尔线程智能科技(北京)有限责任公司 数据缓存方法及芯片

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4405533B2 (ja) * 2007-07-20 2010-01-27 株式会社東芝 キャッシュ方法及びキャッシュ装置
CN101656094B (zh) * 2009-09-25 2012-04-18 杭州华三通信技术有限公司 数据存储方法和存储设备
US9870232B2 (en) * 2012-05-29 2018-01-16 Fujitsu Limited Extensible method and system for storage metadata
CN102750174B (zh) * 2012-06-29 2016-01-27 Tcl集团股份有限公司 文件加载方法及装置
CN102968299A (zh) * 2012-11-01 2013-03-13 广东欧珀移动通信有限公司 一种手机应用广告动画的处理方法
CN103440276A (zh) * 2013-08-08 2013-12-11 星云融创(北京)信息技术有限公司 一种提高网页显示速度的方法及装置
CN104407990B (zh) * 2014-12-08 2017-08-15 北京星网锐捷网络技术有限公司 一种磁盘访问方法及装置
CN104615432B (zh) * 2015-02-10 2020-06-16 腾讯科技(北京)有限公司 闪屏信息处理方法及客户端
CN104699422B (zh) 2015-03-11 2018-03-13 华为技术有限公司 缓存数据的确定方法及装置
CN106294352B (zh) * 2015-05-13 2019-10-25 姚猛 一种文件处理方法、装置和文件系统
CN107646187A (zh) 2015-06-12 2018-01-30 慧与发展有限责任合伙企业 应用标识高速缓存
CN105869005A (zh) * 2015-11-23 2016-08-17 乐视网信息技术(北京)股份有限公司 一种app开启广告预加载方法、装置和系统
CN105608142B (zh) * 2015-12-17 2019-02-12 浙江大华技术股份有限公司 一种Json数据的存储方法及装置
CN106777266B (zh) * 2016-12-28 2020-05-15 重庆可兰达科技有限公司 一种基于预缓存提升客户端开屏展现率的方法
CN106708443B (zh) * 2017-01-03 2020-01-17 北京百度网讯科技有限公司 数据读写方法及装置
US10318417B2 (en) 2017-03-31 2019-06-11 Intel Corporation Persistent caching of memory-side cache content
CN109426631A (zh) 2017-08-30 2019-03-05 深圳市中兴微电子技术有限公司 一种基于rdma的通信方法、装置及存储介质
CN107621969A (zh) 2017-09-19 2018-01-23 郑州云海信息技术有限公司 对象属性传递方法、系统、计算机装置及可读存储介质
CN109597568B (zh) * 2018-09-18 2022-03-04 天津字节跳动科技有限公司 一种数据存储方法、装置、终端设备及存储介质
CN109558386A (zh) * 2018-11-26 2019-04-02 北京微播视界科技有限公司 一种客户端数据的缓存方法、装置、设备和介质
CN109543080B (zh) 2018-12-04 2020-11-06 北京字节跳动网络技术有限公司 一种缓存数据处理方法、装置、电子设备及存储介质
US11475092B2 (en) * 2018-12-21 2022-10-18 Home Box Office, Inc. Preloaded content selection graph validation
US11120038B1 (en) * 2019-08-28 2021-09-14 Palantir Technologies Inc. Systems and methods for creating a data layer based on content from data sources
CN112565835A (zh) * 2019-09-26 2021-03-26 北京字节跳动网络技术有限公司 视频内容的展示方法、客户端及存储介质
US11341317B2 (en) * 2019-10-16 2022-05-24 Oracle International Corporation Supporting piecewise update of JSON document efficiently

Also Published As

Publication number Publication date
US20220350740A1 (en) 2022-11-03
WO2021057325A1 (zh) 2021-04-01
CN112565870A (zh) 2021-03-26
US11907121B2 (en) 2024-02-20

Similar Documents

Publication Publication Date Title
CN111510760B (zh) 视频信息展示方法和装置、存储介质和电子设备
US10750223B2 (en) System, method, and device for displaying content item
CN112261226B (zh) 横屏交互方法、装置、电子设备和存储介质
CN105554550B (zh) 视频播放方法及装置
CN109474843B (zh) 语音操控终端的方法、客户端、服务器
CN111930973B (zh) 多媒体数据的播放方法、装置、电子设备及存储介质
CN110392312B (zh) 群聊构建方法、系统、介质和电子设备
CN109684589B (zh) 客户端的评论数据的处理方法、装置及计算机存储介质
CN110401877B (zh) 视频播放的控制方法、装置、电子设备、及存储介质
US11750879B2 (en) Video content display method, client, and storage medium
CN111225232A (zh) 基于视频的贴纸动画引擎、实现方法、服务器和介质
CN112565870B (zh) 内容的缓存和读取方法、客户端及存储介质
CN114302208A (zh) 视频的发布方法、装置、电子设备、存储介质和程序产品
CN104615432B (zh) 闪屏信息处理方法及客户端
CN109635131B (zh) 多媒体内容榜单显示方法、推送方法,装置及存储介质
CN114125551B (zh) 视频生成方法、装置、电子设备及计算机可读介质
CN110162350B (zh) 通知栏信息的显示方法、装置、服务器及存储介质
CN110147283B (zh) 一种显示内容切换显示方法、装置、设备及介质
CN113507632B (zh) 视频的处理方法、装置、终端和存储介质
CN112291602B (zh) 视频播放方法、电子设备及存储介质
CN111221455B (zh) 素材展示方法、装置、终端及存储介质
CN112565859B (zh) 视频内容的展示方法、客户端及存储介质
CN113885741A (zh) 一种多媒体处理方法、装置、设备及介质
CN107800618B (zh) 图片推荐方法、装置、终端及计算机可读存储介质
CN118283364A (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
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 100041 B-0035, 2 floor, 3 building, 30 Shixing street, Shijingshan District, Beijing.

Patentee after: Douyin Vision Co.,Ltd.

Address before: 100041 B-0035, 2 floor, 3 building, 30 Shixing street, Shijingshan District, Beijing.

Patentee before: Tiktok vision (Beijing) Co.,Ltd.

Address after: 100041 B-0035, 2 floor, 3 building, 30 Shixing street, Shijingshan District, Beijing.

Patentee after: Tiktok vision (Beijing) Co.,Ltd.

Address before: 100041 B-0035, 2 floor, 3 building, 30 Shixing street, Shijingshan District, Beijing.

Patentee before: BEIJING BYTEDANCE NETWORK TECHNOLOGY Co.,Ltd.