CN110825986A - 客户端请求数据的方法、系统、存储介质和电子设备 - Google Patents
客户端请求数据的方法、系统、存储介质和电子设备 Download PDFInfo
- Publication number
- CN110825986A CN110825986A CN201911069311.2A CN201911069311A CN110825986A CN 110825986 A CN110825986 A CN 110825986A CN 201911069311 A CN201911069311 A CN 201911069311A CN 110825986 A CN110825986 A CN 110825986A
- Authority
- CN
- China
- Prior art keywords
- request
- cache
- data
- key
- 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.)
- Granted
Links
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/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
- G06F16/9566—URL specific, e.g. using aliases, detecting broken or misspelled links
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
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)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种客户端请求数据的方法、系统、存储介质和电子设备,方法包括客户端发起第一数据请求,并将第一数据请求生成第一缓存key;将第一缓存key和第一数据请求以第一key‑value的形式存储至请求池;在客户端结束发起第一数据请求后将第一缓存key和第一数据请求的第一响应数据以第二key‑value的形式存储,并提供统一的缓存存放及读取api;客户端发起第二数据请求前判断是否有可使用的缓存,若有,则在客户端发起第二数据请求时返回该缓存,若无,根据第二数据请求生成第二缓存key,并查找请求池中是否有与第二缓存key对应的请求,若有,则使用该请求。本发明能够节省接口的请求耗时。
Description
技术领域
本发明涉及一种客户端请求数据的方法、系统、存储介质和电子设备。
背景技术
移动应用或html5(超文本)应用内,页面加载时经常需要调用远程服务端接口,而当接口访问速度较慢、接口响应数据较大或网络情况较差时,实际接口请求时间较长,显著拖累页面加载速度,进而影响用户体验。
发明内容
本发明要解决的技术问题是为了克服现有技术中移动应用等调用远程服务端接口的请求时间较长而影响用户体验的缺陷,提供一种客户端请求数据的方法、系统、存储介质和电子设备。
本发明是通过下述技术方案来解决上述技术问题的:
一种客户端请求数据的方法,其特点在于,包括以下步骤:
S1、客户端发起第一数据请求,并将所述第一数据请求生成第一缓存key(键);
S2、将所述第一缓存key和所述第一数据请求以第一key-value(键值对)的形式存储至一请求池;
S3、在客户端结束发起第一数据请求后将所述第一缓存key和所述第一数据请求的第一响应数据以第二key-value的形式存储,并提供统一的缓存存放及读取api(应用程序编程接口);
S4、客户端发起第二数据请求前判断是否有可使用的缓存,若有,则在客户端发起所述第二数据请求时返回该缓存,若无,进入步骤S5;
S5、根据所述第二数据请求生成第二缓存key,并查找所述请求池中是否有与该第二缓存key对应的请求,若有,则使用该请求。
较佳地,步骤S1中将所述第一数据请求生成第一缓存key的步骤为:
S11.将所述第一数据请求的URL(统一资源定位符)、请求方式、以及请求数据内容以拼接或hash(散列函数)的方式生成所述第一缓存key。
较佳地,步骤S4中客户端发起第二数据请求前判断是否有可使用的缓存包括:
S41.根据所述第二数据请求生成第二缓存key,判断所述缓存中是否有相同的第二缓存key,若有,则有可使用的缓存,若无,则无可使用的缓存。
较佳地,所述第一key-value和所述第二key-value的存储格式为hash格式。
较佳地,将所述第一缓存key和所述第一数据请求的第一响应数据以第二key-value的形式存储包括存储至客户端的app端数据库、客户端的本地文件或客户端的JavaScript(脚本语言)内存对象中。
一种客户端请求数据的系统,其特点在于,所述系统包括:
第一缓存key生成模块,用于在客户端发起第一数据请求时将所述第一数据请求生成第一缓存key;
第一key-value存储模块,用于将所述第一缓存key和所述第一数据请求以第一key-value的形式存储至一请求池;
第二key-value存储模块,用于在客户端结束发起第一数据请求后将所述第一缓存key和所述第一数据请求的第一响应数据以第二key-value的形式存储,并提供统一的缓存存放及读取api;
判断模块,用于在客户端发起第二数据请求前判断是否有可用的缓存,若有,则在客户端发起第二数据请求时返回该缓存,若无,则调用查找模块,
查找模块,用于根据所述第二数据请求生成第二缓存key,并查找所述请求池中是否有与该第二缓存key对应的请求,若有,则使用该请求。
较佳地,所述系统还包括一拼接模块,所述拼接模块用于将所述第一数据请求的URL、请求方式、以及请求数据内容以拼接或hash的方式生成所述第一缓存key。
较佳地,所述判断模块在客户端发起第二数据请求前判断是否有可用的缓存包括:
根据所述第二数据请求生成第二缓存key,判断所述缓存中是否有相同的第二缓存key,若有,则有可使用的缓存,若无,则无可使用的缓存。
一种计算机可读存储介质,其上存储有计算机程序,其特点在于,所述计算机程序被处理器执行时实现如上所述的客户端请求数据的方法的步骤。
一种电子设备,包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,其特点在于,所述处理器执行所述计算机程序时实现如上所述的客户端请求数据的方法的步骤。
本发明的积极进步效果在于:通过将先前的数据请求及响应数据存储起来,并在客户端发起第二数据请求时判断是否有可用的缓存,以及判断是否有可用的相似请求,以便直接在发起第二数据请求时调用已有的缓存或已有的请求。能够大大减少发起新的网络请求的次数,节省了接口的请求耗时,大大提升了网络接口请求性能。
附图说明
图1为实施例1的客户端请求数据的方法流程图。
图2为实施例1的客户端请求数据的方法中有关租车实例的简化流程图。
图3为实施例2的客户端请求数据的系统结构图。
图4为实施例4的电子设备的硬件结构示意图。
具体实施方式
下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
实施例1
本实施例提供一种客户端请求数据的方法,其中客户端可表现为但不限于为移动终端的APP应用,或者是html5应用。该些应用经常会调用远程服务端接口。如图1所示,该方法包括以下步骤:
S1、客户端发起第一数据请求,并将所述第一数据请求生成第一缓存key;
比如,将所述第一数据请求的URL、请求方式、以及请求数据内容以拼接或hash的方式生成所述第一缓存key。第一缓存key可为字符串形式。
此外,客户端也可以提前发起第一数据请求,其发起时间可由使用方根据业务场景决定,比如可以在app启动后立即发起或页面参数有变化时发起。
S2、将所述第一缓存key和所述第一数据请求以第一key-value的形式存储至一请求池;
该请求池可为内存对象。
S3、在客户端结束发起第一数据请求后将所述第一缓存key和所述第一数据请求的第一响应数据以第二key-value的形式存储,并提供统一的缓存存放及读取api;
其中,所述第一key-value和所述第二key-value的存储格式均为hash格式。而第一响应数据可为序列化文本字符串形式。缓存的存放地址会统一,以便外部对象通过该api进行调用。
将所述第一缓存key和所述第一数据请求的第一响应数据以第二key-value的形式存储包括存储至客户端的app端数据库、客户端的本地文件或客户端的JavaScript内存对象中。
S4、客户端发起第二数据请求前判断是否有可使用的缓存,若有,则在客户端发起所述第二数据请求时返回该缓存,若无,进入步骤S5;
具体的,根据所述第二数据请求生成第二缓存key。生成第二缓存key的算法与生成第一缓存key的算法相同。然后判断所述缓存中是否有相同的第二缓存key,若有,则有可使用的缓存,若无,则无可使用的缓存。
S5、根据所述第二数据请求生成第二缓存key,并查找所述请求池中是否有与该第二缓存key对应的请求,若有,则使用该请求。
如图2所示,以国内租车列表页为例,先预测请求参数,参数的来源可为默认参数或用户更改的参数,如时间,区域等。默认参数可包含机、酒,其指的是如果用户上一个页面是机票或酒店等页面,则根据一些规则生成默认参数。时间、区域等参数指的是用户跳转到其他相应页面选择租车时间、租车城市及取还车地点。
当搜集好参数后,手动操作搜索,先判断是否命中缓存,若未命中,则尝试复用可能正在进行中的请求,若无正在进行中的请求,则直接发出请求。最终进入渲染产品列表,该列表可为指渲染接口返回的符合用户搜索条件的所有车型、供应商、价格等其他信息,从而实现了租车的请求。
本实施例主要涉及预请求缓存和请求复用。能显著降低网络接口请求时间,大幅提高页面加载性能。以国内租车app列表页为例,使用该发明前产品列表接口请求时间,含网络耗时,为1.956秒,使用该发明后接口请求时间下降到0.471秒,降低76%。其中请求复用技术平均减少耗时1.447秒。
实施例2
本实施例提供一种客户端请求数据的系统,其实现实施例1所述的方法步骤。该系统包括:
一种客户端请求数据的系统,如图3所示。所述系统包括:
第一缓存key生成模块1,用于在客户端发起第一数据请求时将所述第一数据请求生成第一缓存key;
所述系统还包括拼接模块11,所述拼接模块用于将所述第一数据请求的URL、请求方式、以及请求数据内容以拼接或hash的方式生成所述第一缓存key。
第一key-value存储模块2,用于将所述第一缓存key和所述第一数据请求以第一key-value的形式存储至一请求池;
第二key-value存储模块3,用于在客户端结束发起第一数据请求后将所述第一缓存key和所述第一数据请求的第一响应数据以第二key-value的形式存储,并提供统一的缓存存放及读取api;
判断模块4,用于在客户端发起第二数据请求前判断是否有可用的缓存,若有,则在客户端发起第二数据请求时返回该缓存,若无,则调用查找模块。
所述判断模块在客户端发起第二数据请求前判断是否有可用的缓存包括:根据所述第二数据请求生成第二缓存key,判断所述缓存中是否有相同的第二缓存key,若有,则有可使用的缓存,若无,则无可使用的缓存。
查找模块5,用于根据所述第二数据请求生成第二缓存key,并查找所述请求池中是否有与该第二缓存key对应的请求,若有,则使用该请求。
本实施例能够达到与实施例1相同的技术效果。
实施例3
本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现实施例1提供的客户端请求数据的方法的步骤。
其中,可读存储介质可以采用的更具体可以包括但不限于:便携式盘、硬盘、随机存取存储器、只读存储器、可擦拭可编程只读存储器、光存储器件、磁存储器件或上述的任意合适的组合。
在可能的实施方式中,本发明还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行实现实施例1中的客户端请求数据的方法的步骤。
其中,可以以一种或多种程序设计语言的任意组合来编写用于执行本发明的程序代码,所述程序代码可以完全地在用户设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户设备上部分在远程设备上执行或完全在远程设备上执行。
实施例4
本实施例提供一种电子设备,电子设备可以通过计算设备的形式表现(例如可以为服务器设备),包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中处理器执行计算机程序时可以实现实施例1提供的客户端请求数据的方法。
图4示出了本实施例的硬件结构示意图,如图4所示,电子设备9具体包括:
至少一个处理器91、至少一个存储器92以及用于连接不同系统组件(包括处理器91和存储器92)的总线93,其中:
总线93包括数据总线、地址总线和控制总线。
存储器92包括易失性存储器,例如随机存取存储器(RAM)921和/或高速缓存存储器922,还可以进一步包括只读存储器(ROM)923。
存储器92还包括具有一组(至少一个)程序模块924的程序/实用工具925,这样的程序模块924包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
处理器91通过运行存储在存储器92中的计算机程序,从而执行各种功能应用以及数据处理,例如本发明实施例1所提供的客户端请求数据的方法。
电子设备9进一步可以与一个或多个外部设备94(例如键盘、指向设备等)通信。这种通信可以通过输入/输出(I/O)接口95进行。并且,电子设备9还可以通过网络适配器96与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器96通过总线93与电子设备9的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备9使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID(磁盘阵列)系统、磁带驱动器以及数据备份存储系统等。
应当注意,尽管在上文详细描述中提及了电子设备的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。
Claims (10)
1.一种客户端请求数据的方法,其特征在于,包括以下步骤:
S1、客户端发起第一数据请求,并将所述第一数据请求生成第一缓存key;
S2、将所述第一缓存key和所述第一数据请求以第一key-value的形式存储至一请求池;
S3、在客户端结束发起第一数据请求后将所述第一缓存key和所述第一数据请求的第一响应数据以第二key-value的形式存储,并提供统一的缓存存放及读取api;
S4、客户端发起第二数据请求前判断是否有可使用的缓存,若有,则在客户端发起所述第二数据请求时返回该缓存,若无,进入步骤S5;
S5、根据所述第二数据请求生成第二缓存key,并查找所述请求池中是否有与该第二缓存key对应的请求,若有,则使用该请求。
2.如权利要求1所述的客户端请求数据的方法,其特征在于,步骤S1中将所述第一数据请求生成第一缓存key的步骤为:
S11.将所述第一数据请求的URL、请求方式、以及请求数据内容以拼接或hash的方式生成所述第一缓存key。
3.如权利要求1所述的客户端请求数据的方法,其特征在于,步骤S4中客户端发起第二数据请求前判断是否有可使用的缓存包括:
S41.根据所述第二数据请求生成第二缓存key,判断所述缓存中是否有相同的第二缓存key,若有,则有可使用的缓存,若无,则无可使用的缓存。
4.如权利要求1所述的客户端请求数据的方法,其特征在于,所述第一key-value和所述第二key-value的存储格式为hash格式。
5.如权利要求1-4中任意一项所述的客户端请求数据的方法,其特征在于,将所述第一缓存key和所述第一数据请求的第一响应数据以第二key-value的形式存储包括存储至客户端的app端数据库、客户端的本地文件或客户端的JavaScript内存对象中。
6.一种客户端请求数据的系统,其特征在于,所述系统包括:
第一缓存key生成模块,用于在客户端发起第一数据请求时将所述第一数据请求生成第一缓存key;
第一key-value存储模块,用于将所述第一缓存key和所述第一数据请求以第一key-value的形式存储至一请求池;
第二key-value存储模块,用于在客户端结束发起第一数据请求后将所述第一缓存key和所述第一数据请求的第一响应数据以第二key-value的形式存储,并提供统一的缓存存放及读取api;
判断模块,用于在客户端发起第二数据请求前判断是否有可用的缓存,若有,则在客户端发起第二数据请求时返回该缓存,若无,则调用查找模块,
查找模块,用于根据所述第二数据请求生成第二缓存key,并查找所述请求池中是否有与该第二缓存key对应的请求,若有,则使用该请求。
7.如权利要求6所述的客户端请求数据的系统,其特征在于,所述系统还包括拼接模块,所述拼接模块用于将所述第一数据请求的URL、请求方式、以及请求数据内容以拼接或hash的方式生成所述第一缓存key。
8.如权利要求6或7所述的客户端请求数据的系统,其特征在于,所述判断模块在客户端发起第二数据请求前判断是否有可用的缓存包括:
根据所述第二数据请求生成第二缓存key,判断所述缓存中是否有相同的第二缓存key,若有,则有可使用的缓存,若无,则无可使用的缓存。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-5中任意一项所述的客户端请求数据的方法的步骤。
10.一种电子设备,包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1-5中任意一项所述的客户端请求数据的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911069311.2A CN110825986B (zh) | 2019-11-05 | 2019-11-05 | 客户端请求数据的方法、系统、存储介质和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911069311.2A CN110825986B (zh) | 2019-11-05 | 2019-11-05 | 客户端请求数据的方法、系统、存储介质和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110825986A true CN110825986A (zh) | 2020-02-21 |
CN110825986B CN110825986B (zh) | 2023-03-21 |
Family
ID=69552341
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911069311.2A Active CN110825986B (zh) | 2019-11-05 | 2019-11-05 | 客户端请求数据的方法、系统、存储介质和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110825986B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012139328A1 (zh) * | 2011-04-14 | 2012-10-18 | 中兴通讯股份有限公司 | 缓存服务器系统及其应用方法、缓存客户端、缓存服务端 |
CN104202424A (zh) * | 2014-09-19 | 2014-12-10 | 中国人民财产保险股份有限公司 | 一种使用软件架构扩展缓存的方法 |
CN105653684A (zh) * | 2015-12-29 | 2016-06-08 | 曙光云计算技术有限公司 | 分布式文件系统的预读方法和装置 |
CN105681380A (zh) * | 2014-11-20 | 2016-06-15 | 阿里巴巴集团控股有限公司 | 客户端离线化方法及其系统 |
-
2019
- 2019-11-05 CN CN201911069311.2A patent/CN110825986B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012139328A1 (zh) * | 2011-04-14 | 2012-10-18 | 中兴通讯股份有限公司 | 缓存服务器系统及其应用方法、缓存客户端、缓存服务端 |
CN104202424A (zh) * | 2014-09-19 | 2014-12-10 | 中国人民财产保险股份有限公司 | 一种使用软件架构扩展缓存的方法 |
CN105681380A (zh) * | 2014-11-20 | 2016-06-15 | 阿里巴巴集团控股有限公司 | 客户端离线化方法及其系统 |
CN105653684A (zh) * | 2015-12-29 | 2016-06-08 | 曙光云计算技术有限公司 | 分布式文件系统的预读方法和装置 |
Non-Patent Citations (2)
Title |
---|
屠雪真;: "分布式缓存系统客户端关键技术研究" * |
熊慕舟;: "一种基于Radix树的数据库前端缓存" * |
Also Published As
Publication number | Publication date |
---|---|
CN110825986B (zh) | 2023-03-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9747124B2 (en) | Distributed virtual machine image management for cloud computing | |
US9740435B2 (en) | Methods for managing content stored in cloud-based storages | |
US9569400B2 (en) | RDMA-optimized high-performance distributed cache | |
US9426200B2 (en) | Updating dynamic content in cached resources | |
RU2598991C2 (ru) | Восстановление данных клиента при перемещениях данных клиента | |
CN108090078B (zh) | 文档在线预览方法及装置、存储介质、电子设备 | |
US20100161717A1 (en) | Method and software for reducing server requests by a browser | |
US20070174475A1 (en) | Method and Apparatus for Local IP Address Translation | |
US20110231482A1 (en) | Automated Optimization Based On Determination Of Website Usage Scenario | |
US20200387480A1 (en) | Path resolver for client access to distributed file systems | |
CN103051706A (zh) | 应用于动态网站的动态网页请求处理系统和方法 | |
WO2012010583A1 (en) | On-demand translation of application text | |
US20090024916A1 (en) | Seamless Asynchronous Updates of Dynamic Content | |
US9485304B2 (en) | Asset streaming and delivery | |
US20130227112A1 (en) | Smart cache learning mechanism in enterprise portal navigation | |
US11477158B2 (en) | Method and apparatus for advertisement anti-blocking | |
US9128625B1 (en) | Method and system for physical memory reservation for user-space programs | |
CN110929128A (zh) | 一种数据爬取方法、装置、设备和介质 | |
CN112612546A (zh) | 页面加载方法、装置、电子设备和存储介质 | |
CN114489622A (zh) | 静态资源管理方法、Node.js应用、电子设备和存储介质 | |
CN110110184B (zh) | 信息查询方法、系统、计算机系统及存储介质 | |
CN111259283A (zh) | 一种页面资源预加载的处理方法及装置,电子和存储设备 | |
US20120151313A1 (en) | User-specific customization of web pages | |
CN112491940B (zh) | 代理服务器的请求转发方法及装置、存储介质及电子设备 | |
CN110825986B (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 |