CN110442808A - 页面渲染加速方法和装置 - Google Patents

页面渲染加速方法和装置 Download PDF

Info

Publication number
CN110442808A
CN110442808A CN201910577993.1A CN201910577993A CN110442808A CN 110442808 A CN110442808 A CN 110442808A CN 201910577993 A CN201910577993 A CN 201910577993A CN 110442808 A CN110442808 A CN 110442808A
Authority
CN
China
Prior art keywords
page
content
request
configuration data
cache contents
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.)
Pending
Application number
CN201910577993.1A
Other languages
English (en)
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.)
Suning Cloud Computing Co Ltd
Original Assignee
Suning Cloud Computing 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 Suning Cloud Computing Co Ltd filed Critical Suning Cloud Computing Co Ltd
Priority to CN201910577993.1A priority Critical patent/CN110442808A/zh
Publication of CN110442808A publication Critical patent/CN110442808A/zh
Pending legal-status Critical Current

Links

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
    • 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/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请涉及一种页面渲染加速方法和装置,所述方法包括:在接收到页面加载请求时,判断是否已经存在相应的缓存内容;如果存在,直接将相应的缓存内容返回到请求端;如果不存在,则下发页面内容配置数据,并进行预编译缓存处理。本申请的方案在服务端内置打包编译能力,针对动态的单页面应用,根据请求情况进行在线打包编译缓存,实现对于动态化的单页面应用场景也能根据请求情况进行缓存,提高大型单页面应用的加载性能,加速页面加载效率,提升用户使用体验。

Description

页面渲染加速方法和装置
技术领域
本申请涉及动态单页面应用技术领域,具体涉及一种页面渲染加速方法和装置。
背景技术
动态页面是指页面并非直接静态内容渲染出来的,而是根据动态配置来确定页面渲染的结构和内容。
现有的单页面应用预编译方法是在前端开发打包阶段进行的,这只能针对渲染出的节点是固定不可变的结构进行预编译加速渲染,对于大型动态单页面应用的性能加速是毫无作用的。
发明内容
为至少在一定程度上克服相关技术中存在的问题,本申请提供一种页面渲染加速方法和装置。
根据本申请实施例的第一方面,提供一种页面渲染加速方法,包括:
在接收到页面加载请求时,判断是否已经存在相应的缓存内容;
如果存在,直接将相应的缓存内容返回到请求端;
如果不存在,则下发页面内容配置数据,并进行预编译缓存处理。
进一步地,所述判断是否已经存在相应的缓存内容,包括:
根据所述页面加载请求确定请求参数;
根据所述请求参数进行唯一性判断,确定数据库中是否已经存在相应的缓存内容。
进一步地,所述请求参数包括:内容ID、内容版本号;
所述根据所述请求参数进行唯一性判断,包括:
根据内容ID和内容版本号进行Hash唯一性判断。
进一步地,所述方法还包括:
根据所述请求参数,从数据库中获取与所述请求参数对应的唯一的页面内容配置数据。
进一步地,所述下发页面内容配置数据,包括:
将所述页面内容配置数据下发到请求端,以使所述请求端根据所述页面内容配置数据计算页面结构并进行页面渲染。
进一步地,所述进行预编译缓存处理,包括:
根据所述页面内容配置数据,使用编译技术进行与请求端一致的代码解析运行,获得页面结构;
将所述页面结构存储到数据库中。
进一步地,所述方法还包括:
当检测到某个页面加载请求所对应的页面内容配置数据发生改变时,针对该页面加载请求进行缓存刷新。
进一步地,所述针对该页面加载请求进行缓存刷新,包括:
根据改变后的页面内容配置数据,重新计算相应的缓存内容,全量覆盖原缓存内容。
根据本申请实施例的第二方面,提供一种页面渲染加速装置,包括:
判断模块,用于在接收到页面加载请求时,判断是否已经存在相应的缓存内容;
发送模块,用于在存在缓存内容时直接将相应的缓存内容返回到请求端,在不存在缓存内容时下发页面内容配置数据;
预编译模块,用于进行预编译缓存处理。
根据本申请实施例的第三方面,提供一种页面渲染加速系统,包括:客户端和服务端;
所述客户端用于发起页面加载请求,并根据所述服务端的反馈结果进行页面渲染;
所述服务端用于:
在接收到页面加载请求时,判断是否已经存在相应的缓存内容;
如果存在,直接将相应的缓存内容返回到请求端;
如果不存在,则下发页面内容配置数据,并进行预编译缓存处理。
本申请的实施例提供的技术方案具备以下有益效果:
本申请的方案在服务端内置打包编译能力,针对动态的单页面应用,根据请求情况进行在线打包编译缓存,实现对于动态化的单页面应用场景也能根据请求情况进行缓存,提高大型单页面应用的加载性能,加速页面加载效率,提升用户使用体验。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1是根据一示例性实施例示出的一种页面渲染加速方法的流程图。
图2是根据一示例性实施例示出的一种页面渲染加速方法的具体流程图。
图3是根据一示例性实施例示出的一种页面渲染加速系统的结构图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的方法和装置的例子。
图1是根据一示例性实施例示出的一种页面渲染加速方法的流程图。该方法可以应用于Web服务端,包括以下步骤:
步骤S1:在接收到页面加载请求时,判断是否已经存在相应的缓存内容;
步骤S2:如果存在,直接将相应的缓存内容返回到请求端;
步骤S3:如果不存在,则下发页面内容配置数据,并进行预编译缓存处理。
本申请的方案在服务端内置打包编译能力,针对动态的单页面应用,根据请求情况进行在线打包编译缓存,实现对于动态化的单页面应用场景也能根据请求情况进行分拆缓存,提高大型单页面应用的加载性能,加速页面加载效率,提升用户使用体验。
分拆缓存,就是根据唯一性参数(即内容ID和内容版本号),将动态的内容拆分成不同的固定的缓存。
一些实施例中,所述判断是否已经存在相应的缓存内容,包括:
根据所述页面加载请求确定请求参数;
根据所述请求参数进行唯一性判断,确定数据库中是否已经存在相应的缓存内容。
一些实施例中,所述请求参数包括:内容ID、内容版本号;
所述根据所述请求参数进行唯一性判断,包括:
根据内容ID和内容版本号进行Hash唯一性判断。
一些实施例中,所述方法还包括:
根据所述请求参数,从数据库中获取与所述请求参数对应的唯一的页面内容配置数据。
一些实施例中,所述下发页面内容配置数据,包括:
将所述页面内容配置数据下发到请求端,以使所述请求端根据所述页面内容配置数据计算页面结构并进行页面渲染。
一些实施例中,所述进行预编译缓存处理,包括:
根据所述页面内容配置数据,使用编译技术进行与请求端一致的代码解析运行,获得页面结构;
将所述页面结构存储到数据库中。
一些实施例中,所述方法还包括:
当检测到某个页面加载请求所对应的页面内容配置数据发生改变时,针对该页面加载请求进行缓存刷新。
一些实施例中,所述针对该页面加载请求进行缓存刷新,包括:
根据改变后的页面内容配置数据,重新计算相应的缓存内容,全量覆盖原缓存内容。
参照图2和图3,本申请方案的具体工作流程如下:
1、请求解析:客户端站点发起页面加载请求,根据请求参数解析页面情况。
请求参数决定了对页面加载请求的内容唯一识别作用,请求参数可以包括:内容ID、内容版本。
页面情况可以包括:页面布局、组件控件的动态组合,以及根据不同的请求时间产生不同的数据渲染。
解析过程是:在获取到页面内容唯一ID和内容版本后,从数据库中获取到对应的唯一的内容配置数据。
2、缓存判断:判断是否存在唯一的页面结构预编译缓存。
3、存在缓存:存在缓存则返回缓存内容给客户端。
4、不存在缓存:不存在缓存则下发页面动态配置内容,服务端进行预编译缓存处理。
4.1、解析参数请求接口,获取参数配置。
参数请求接口是从客户端向服务端获取数据的过程,通过携带请求参数(内容ID、内容版本号)去请求获取配置内容的接口;根据内容ID和内容版本号从数据库中获取到对应的配置内容。
4.2、在服务端使用编译技术,基于前端构建工具和浏览器运行环境,实现在服务端进行和客户端一致的代码解析运行,并将页面结构存储下来,作为缓存后续使用。
4.3、存储页面结构到数据库中以备使用。
4.4、返回任务完成标识。
5、客户端呈现:存在缓存则节省了客户端对动态结构的计算量,不存在缓存则在客户端进行缓存计算直接渲染给用户,并同步在服务端进行预编译缓存处理,实现对于二次请求的动态缓存支持。
6、缓存刷新:针对大型动态单页面应用场景的配置改变,可以在保存时针对特定唯一性的条件直接进行缓存刷新,保障预编译缓存实时有效。
例如,页面布局调整,存储到数据库的页面配置数据数据就会相应调整;页面组件调整,存储到数据库的页面配置数据也会调整。改动了页面的任何配置,都会重新计算缓存数据,全量覆盖原缓存数据。
特定唯一性的条件是指页面内容ID和内容版本号组成的唯一性条件。
(1)动态性。将前端预编译缓存能力不仅仅局限于固定结构生产的前端页面,而进一步扩展到动态渲染的结构的预编译缓存能力。
(2)普适性。能适用于所有单页面应用的前端站点,实现结构缓存和性能优化,提升用户体验。
(3)高效性。提升大型前端单页面应用全页加载时的性能,节省客户端计算性能消耗和缩减客户端加载时长。
(4)便利性。封装成独立可运行的插件模式,便于接入各类单页面应用,便于使用,投入生产。
(5)实时性。在动态配置变更的情况下,可以实时刷新预编译缓存,实现页面内容实时高效呈现。
本申请的实施例还提供一种页面渲染加速装置,包括:
判断模块,用于在接收到页面加载请求时,判断是否已经存在相应的缓存内容;
发送模块,用于在存在缓存内容时直接将相应的缓存内容返回到请求端,在不存在缓存内容时下发页面内容配置数据;
预编译模块,用于进行预编译缓存处理。
关于上述实施例中的装置,其中各个模块执行操作的具体步骤已经在有关该方法的实施例中进行了详细描述,此处不再详细阐述说明。
本申请的实施例还提供一种页面渲染加速系统,包括:客户端和服务端;
所述客户端用于发起页面加载请求,并根据所述服务端的反馈结果进行页面渲染;
所述服务端用于:
在接收到页面加载请求时,判断是否已经存在相应的缓存内容;
如果存在,直接将相应的缓存内容返回到请求端;
如果不存在,则下发页面内容配置数据,并进行预编译缓存处理。
本专利核心点为大型单页面应用提供了可插拔的组件模块,特别是针对动态化编译的前端单页面应用实现了高效预编译缓存能力。
基于唯一内容的编译:基于动态化内容的基础,做唯一性辨识,实现动态化页面结构基础下的页面编译缓存加速。
多用户可复用编译结果:不同用户查看同一份动态内容,使用同一份缓存页面,同一个用户可查看多种动态内容获取不同缓存页面。
插件化:在服务端运行插件,满足各种后端语言写法,实现应用包的快速集成。
本专利由于采用通用的插件模式,普遍适用于单页面应用的前端项目,通过高效预编译缓存,提升了大型单页面动态化结构的加载性能,优化了用户体验。
需要说明的是,在本申请的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本申请的描述中,除非另有说明,“多个”的含义是指至少两个。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。

Claims (10)

1.一种页面渲染加速方法,其特征在于,包括:
在接收到页面加载请求时,判断是否已经存在相应的缓存内容;
如果存在,直接将相应的缓存内容返回到请求端;
如果不存在,则下发页面内容配置数据,并进行预编译缓存处理。
2.根据权利要求1所述的方法,其特征在于,所述判断是否已经存在相应的缓存内容,包括:
根据所述页面加载请求确定请求参数;
根据所述请求参数进行唯一性判断,确定数据库中是否已经存在相应的缓存内容。
3.根据权利要求2所述的方法,其特征在于,所述请求参数包括:内容ID、内容版本号;
所述根据所述请求参数进行唯一性判断,包括:
根据内容ID和内容版本号进行Hash唯一性判断。
4.根据权利要求2或3所述的方法,其特征在于,还包括:
根据所述请求参数,从数据库中获取与所述请求参数对应的唯一的页面内容配置数据。
5.根据权利要求4所述的方法,其特征在于,所述下发页面内容配置数据,包括:
将所述页面内容配置数据下发到请求端,以使所述请求端根据所述页面内容配置数据计算页面结构并进行页面渲染。
6.根据权利要求5所述的方法,其特征在于,所述进行预编译缓存处理,包括:
根据所述页面内容配置数据,使用编译技术进行与请求端一致的代码解析运行,获得页面结构;
将所述页面结构存储到数据库中。
7.根据权利要求6所述的方法,其特征在于,还包括:
当检测到某个页面加载请求所对应的页面内容配置数据发生改变时,针对该页面加载请求进行缓存刷新。
8.根据权利要求7所述的方法,其特征在于,所述针对该页面加载请求进行缓存刷新,包括:
根据改变后的页面内容配置数据,重新计算相应的缓存内容,全量覆盖原缓存内容。
9.一种页面渲染加速装置,其特征在于,包括:
判断模块,用于在接收到页面加载请求时,判断是否已经存在相应的缓存内容;
发送模块,用于在存在缓存内容时直接将相应的缓存内容返回到请求端,在不存在缓存内容时下发页面内容配置数据;
预编译模块,用于进行预编译缓存处理。
10.一种页面渲染加速系统,其特征在于,包括:客户端和服务端;
所述客户端用于发起页面加载请求,并根据所述服务端的反馈结果进行页面渲染;
所述服务端用于:
在接收到页面加载请求时,判断是否已经存在相应的缓存内容;
如果存在,直接将相应的缓存内容返回到请求端;
如果不存在,则下发页面内容配置数据,并进行预编译缓存处理。
CN201910577993.1A 2019-06-28 2019-06-28 页面渲染加速方法和装置 Pending CN110442808A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910577993.1A CN110442808A (zh) 2019-06-28 2019-06-28 页面渲染加速方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910577993.1A CN110442808A (zh) 2019-06-28 2019-06-28 页面渲染加速方法和装置

Publications (1)

Publication Number Publication Date
CN110442808A true CN110442808A (zh) 2019-11-12

Family

ID=68428832

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910577993.1A Pending CN110442808A (zh) 2019-06-28 2019-06-28 页面渲染加速方法和装置

Country Status (1)

Country Link
CN (1) CN110442808A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111913757A (zh) * 2020-07-13 2020-11-10 西安即刻易用网络科技有限公司 一种单页面应用程序加载方法及系统
CN112765507A (zh) * 2021-01-27 2021-05-07 上海淇玥信息技术有限公司 一种页面首屏渲染与资源加载方法、装置和电子设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103502983A (zh) * 2011-04-28 2014-01-08 高通股份有限公司 利用基于DOM的同构来备忘缓存Web浏览计算
CN106126693A (zh) * 2016-06-29 2016-11-16 微梦创科网络科技(中国)有限公司 一种网页的相关数据的发送方法及装置
CN106294379A (zh) * 2015-05-18 2017-01-04 阿里巴巴集团控股有限公司 一种页面的加载方法、装置和系统
CN108021614A (zh) * 2017-08-18 2018-05-11 口碑(上海)信息技术有限公司 一种用于页面动态加载的方法及系统
CN108334517A (zh) * 2017-01-20 2018-07-27 华为技术有限公司 一种网页渲染方法及相关设备
CN109684575A (zh) * 2018-10-30 2019-04-26 平安科技(深圳)有限公司 网页数据的处理方法及装置、存储介质、计算机设备
CN109871499A (zh) * 2019-01-16 2019-06-11 中国平安财产保险股份有限公司 页面加载方法及客户端

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103502983A (zh) * 2011-04-28 2014-01-08 高通股份有限公司 利用基于DOM的同构来备忘缓存Web浏览计算
CN106294379A (zh) * 2015-05-18 2017-01-04 阿里巴巴集团控股有限公司 一种页面的加载方法、装置和系统
CN106126693A (zh) * 2016-06-29 2016-11-16 微梦创科网络科技(中国)有限公司 一种网页的相关数据的发送方法及装置
CN108334517A (zh) * 2017-01-20 2018-07-27 华为技术有限公司 一种网页渲染方法及相关设备
CN108021614A (zh) * 2017-08-18 2018-05-11 口碑(上海)信息技术有限公司 一种用于页面动态加载的方法及系统
CN109684575A (zh) * 2018-10-30 2019-04-26 平安科技(深圳)有限公司 网页数据的处理方法及装置、存储介质、计算机设备
CN109871499A (zh) * 2019-01-16 2019-06-11 中国平安财产保险股份有限公司 页面加载方法及客户端

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111913757A (zh) * 2020-07-13 2020-11-10 西安即刻易用网络科技有限公司 一种单页面应用程序加载方法及系统
CN112765507A (zh) * 2021-01-27 2021-05-07 上海淇玥信息技术有限公司 一种页面首屏渲染与资源加载方法、装置和电子设备
CN112765507B (zh) * 2021-01-27 2023-12-26 上海淇玥信息技术有限公司 一种页面首屏渲染与资源加载方法、装置和电子设备

Similar Documents

Publication Publication Date Title
Netravali et al. Prophecy: Accelerating mobile page loads using final-state write logs
US9720949B2 (en) Client-side partition-aware batching of records for insert operations
US6370687B1 (en) Network computer system and substitute compile server
CN102902781B (zh) 网页页面装修推送方法及装置
US20180285470A1 (en) A Mobile Web Cache Optimization Method Based on HTML5 Application Caching
US9146759B2 (en) Assumption-based compilation
Lin et al. ASTRO: Synthesizing application-specific reconfigurable hardware traces to exploit memory-level parallelism
US8799889B2 (en) Application downloading
CN103338272B (zh) 一种内容分发网络及其缓存实现方法
EP2852900B1 (en) Page phase time
WO2006021863A3 (en) A system and method for product migration in multiple languages
CN110442808A (zh) 页面渲染加速方法和装置
US20070261039A1 (en) Translation block invalidation prehints in emulation of a target system on a host system
US9798532B1 (en) Precompiling locally-stored instructions for a web application
WO2004074960A3 (en) Distributed fragment caching and assembly in distributed computing applications
AU2001281273A1 (en) Method and apparatus for pipelining ordered input/output transactions in a cache coherent, multi-processor system
US9858191B2 (en) Electronic system with data management mechanism and method of operation thereof
CN103488517B (zh) Php代码编译方法、php代码运行方法及装置
KR20070088624A (ko) 이종 구조로부터 다수의 오브젝트 파일을 한 세트의 파일로통합하는 방법
US8006238B2 (en) Workload partitioning in a parallel system with hetergeneous alignment constraints
US20210056389A1 (en) Neural network computing method and system including the same
CN107798025B (zh) 存储过程的运行、编译方法、装置和数据库系统
KR101851357B1 (ko) 코드 캐싱 시스템
CN104408178A (zh) Web控件加载装置和方法
Kolonias et al. Design and implementation of an efficient integer count sort in CUDA GPUs

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20191112

RJ01 Rejection of invention patent application after publication