CN110333845A - 加速前端同构化应用程序的方法 - Google Patents
加速前端同构化应用程序的方法 Download PDFInfo
- Publication number
- CN110333845A CN110333845A CN201910488476.7A CN201910488476A CN110333845A CN 110333845 A CN110333845 A CN 110333845A CN 201910488476 A CN201910488476 A CN 201910488476A CN 110333845 A CN110333845 A CN 110333845A
- Authority
- CN
- China
- Prior art keywords
- html
- application program
- component
- thread
- nodejs
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 35
- 238000009877 rendering Methods 0.000 claims abstract description 24
- 230000008569 process Effects 0.000 claims abstract description 18
- 238000000605 extraction Methods 0.000 claims description 15
- 230000005540 biological transmission Effects 0.000 claims description 11
- 230000001133 acceleration Effects 0.000 claims description 9
- 239000000284 extract Substances 0.000 abstract description 5
- 230000000694 effects Effects 0.000 description 2
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种加速前端同构化应用程序的方法,其特征在于,包括以下步骤:1)提取HTML页面的HTML骨架和HTML组件;2)nodejs接收HTML页面请求,在主线程中渲染HTML骨架,在工作线程中渲染HTML组件;3)将步骤2)渲染后的HTML骨架和HTML组件拼装并输出到客户端。优点:通过本发明的nodejs的全新的线程处理,提高了前后端同构渲染模型中的nodejs并发处理能力,提高了效率的同时也降低了整体开发成本。
Description
技术领域
本申请涉及通信领域,具体而言,涉及一种加速前端同构化应用程序的方法。
背景技术
目前前端基于MVVC类开发框架(如react,vue等)的isomorphic(同构)应用程序严重依赖nodejs。而nodejs的异步单线程特性决定了它无法胜任CPU密集型任务。目前主流前后端同构应用程序对组件模板渲染都是基于单线程同步渲染模式,而复杂组件模板渲染是一个CPU密集型任务,在高并发场景中,会严重阻塞nodejs的事件循环,降低系统吞吐量。在一些大的业务场景中,为了增加此类应用的并发处理能力,不得不增加硬件负载均衡设备,从而提高了整体开发成本。
发明内容
本申请的主要目的在于提供一种加速前端同构化应用程序的方法,以解决问题。
为了实现上述目的,本申请提供了一种加速前端同构化应用程序的方法,其特征在于,包括以下步骤:
1)提取HTML页面的HTML骨架和HTML组件;
2)nodejs接收HTML页面请求,在主线程中渲染HTML骨架,在工作线程中渲染HTML组件;
3)将步骤2)渲染后的HTML骨架和HTML组件拼装并输出到客户端。
进一步的,所述HTML组件为HTML页面的主体内容。
进一步的,所述HTML页面的主体内容由MVVC类框架组件化构成。
进一步的,在工作线程中利用worker_threads接口渲染HTML组件。
进一步的,所述渲染后的HTML组件的渲染结果以异步事件形式通知主线程。
一种加速前端同构化应用程序系统,包括提取模块、nodejs线程处理模块以及传输模块;所述提取模块、nodejs线程处理模块以及传输模块依次连接;
所述提取模块用于提取HTML页面的HTML骨架和HTML组件;
所述nodejs线程处理模块用于接收HTML页面请求,在主线程中渲染HTML骨架,在工作线程中渲染HTML组件;
所述传输模块用于将渲染后的HTML骨架和HTML组件拼装并输出到客户端。
进一步的,所述提取模块提取的HTML组件为HTML页面的主体内容。
进一步的,所述提取模块提取的HTML页面的主体内容由MVVC类框架组件化构成。
进一步的,所述nodejs线程处理模块采用worker_threads接口渲染HTML组件。
进一步的,所述传输模块将渲染后的HTML组件的渲染结果以异步事件形式通知主线程。
本发明所达到的有益效果:
通过本发明的nodejs的全新的线程处理,提高了前后端同构渲染模型中的nodejs并发处理能力,提高了效率的同时也降低了整体开发成本。
附图说明
构成本申请的一部分的附图用来提供对本申请的进一步理解,使得本申请的其它特征、目的和优点变得更明显。本申请的示意性实施例附图及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请一种实施例的加速前端同构化应用程序的方法;
图2是根据本申请一种实施例的加速前端同构化应用程序系统。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
此外,术语“安装”、“设置”、“设有”、“连接”、“相连”、“套接”应做广义理解。例如,可以是固定连接,可拆卸连接,或整体式构造;可以是机械连接,或电连接;可以是直接相连,或者是通过中间媒介间接相连,又或者是两个装置、元件或组成部分之间内部的连通。对于本领域普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
如图1所示,一种加速前端同构化应用程序的方法,包括以下步骤:
1)提取HTML页面的HTML骨架和HTML组件;
2)nodejs接收HTML页面请求,在主线程中渲染HTML骨架,在工作线程中渲染HTML组件;
3)将步骤2)渲染后的HTML骨架和HTML组件拼装并输出到客户端。
本实施例中,所述HTML组件为HTML页面的主体内容。
本实施例中,所述HTML页面的主体内容由MVVC类框架组件化构成。
本实施例中,在工作线程中利用worker_threads接口渲染HTML组件。
本实施例中,所述渲染后的HTML组件的渲染结果以异步事件形式通知主线程。
如图2所示,一种加速前端同构化应用程序系统,包括提取模块、nodejs线程处理模块以及传输模块;所述提取模块、nodejs线程处理模块以及传输模块依次连接;
所述提取模块用于提取HTML页面的HTML骨架和HTML组件;
所述nodejs线程处理模块用于接收HTML页面请求,在主线程中渲染HTML骨架,在工作线程中渲染HTML组件;
所述传输模块用于将渲染后的HTML骨架和HTML组件拼装并输出到客户端。
本实施例中,所述提取模块提取的HTML组件为HTML页面的主体内容。
本实施例中,所述提取模块提取的HTML页面的主体内容由MVVC类框架组件化构成。
本实施例中,所述nodejs线程处理模块采用worker_threads接口渲染HTML组件。
本实施例中,所述传输模块将渲染后的HTML组件的渲染结果以异步事件形式通知主线程。
从以上的描述中,可以看出,本发明实现了如下技术效果:
a.本发明利用nodejs的全新线程模型,将组件的渲染过程置于工作线程中渲染,不阻塞主线程执行流程,将工作县城渲染结果以异步事件形式通知主线程。提高了前后端同构渲染模型中的nodejs并发处理能力,降低了开发成本。
具体的,本发明实施例的装置中各模块实现其功能的具体过程可参见方法实施例中的相关描述,此处不再赘述。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种加速前端同构化应用程序的方法,其特征在于,包括以下步骤:
1)提取HTML页面的HTML骨架和HTML组件;
2)nodejs接收HTML页面请求,在主线程中渲染HTML骨架,在工作线程中渲染HTML组件;
3)将步骤2)渲染后的HTML骨架和HTML组件拼装并输出到客户端。
2.根据权利要求1所述的加速前端同构化应用程序的方法,其特征在于,所述HTML组件为HTML页面的主体内容。
3.根据权利要求2所述的加速前端同构化应用程序的方法,其特征在于,所述HTML页面的主体内容由MVVC类框架组件化构成。
4.根据权利要求1所述的加速前端同构化应用程序的方法,其特征在于,在工作线程中利用worker_threads接口渲染HTML组件。
5.根据权利要求1所述的加速前端同构化应用程序的方法,其特征在于,所述渲染后的HTML组件的渲染结果以异步事件形式通知主线程。
6.一种加速前端同构化应用程序系统,其特征在于,包括提取模块、nodejs线程处理模块以及传输模块;所述提取模块、nodejs线程处理模块以及传输模块依次连接;
所述提取模块用于提取HTML页面的HTML骨架和HTML组件;
所述nodejs线程处理模块用于接收HTML页面请求,在主线程中渲染HTML骨架,在工作线程中渲染HTML组件;
所述传输模块用于将渲染后的HTML骨架和HTML组件拼装并输出到客户端。
7.根据权利要求6所述的加速前端同构化应用程序系统,其特征在于,所述提取模块提取的HTML组件为HTML页面的主体内容。
8.根据权利要求7所述的加速前端同构化应用程序系统,其特征在于,所述提取模块提取的HTML页面的主体内容由MVVC类框架组件化构成。
9.根据权利要求6所述的加速前端同构化应用程序系统,其特征在于,所述nodejs线程处理模块采用worker_threads接口渲染HTML组件。
10.根据权利要求6所述的加速前端同构化应用程序系统,其特征在于,所述传输模块将渲染后的HTML组件的渲染结果以异步事件形式通知主线程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910488476.7A CN110333845A (zh) | 2019-06-05 | 2019-06-05 | 加速前端同构化应用程序的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910488476.7A CN110333845A (zh) | 2019-06-05 | 2019-06-05 | 加速前端同构化应用程序的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110333845A true CN110333845A (zh) | 2019-10-15 |
Family
ID=68140727
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910488476.7A Pending CN110333845A (zh) | 2019-06-05 | 2019-06-05 | 加速前端同构化应用程序的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110333845A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090100164A1 (en) * | 2007-10-16 | 2009-04-16 | Samsung Electronics Co., Ltd. | Apparatus and method for providing content |
CN103761317A (zh) * | 2014-01-27 | 2014-04-30 | 北京京东尚科信息技术有限公司 | 一种多线程异步渲染系统及方法 |
CN107734056A (zh) * | 2017-11-07 | 2018-02-23 | 北京仿真中心 | 一种基于NodeJS技术的在线协同画板 |
CN108984714A (zh) * | 2018-07-09 | 2018-12-11 | 北京三快在线科技有限公司 | 页面渲染方法、装置、电子设备及计算机可读介质 |
-
2019
- 2019-06-05 CN CN201910488476.7A patent/CN110333845A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090100164A1 (en) * | 2007-10-16 | 2009-04-16 | Samsung Electronics Co., Ltd. | Apparatus and method for providing content |
CN103761317A (zh) * | 2014-01-27 | 2014-04-30 | 北京京东尚科信息技术有限公司 | 一种多线程异步渲染系统及方法 |
CN107734056A (zh) * | 2017-11-07 | 2018-02-23 | 北京仿真中心 | 一种基于NodeJS技术的在线协同画板 |
CN108984714A (zh) * | 2018-07-09 | 2018-12-11 | 北京三快在线科技有限公司 | 页面渲染方法、装置、电子设备及计算机可读介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109377232B (zh) | 基于dag的区块链的交易定序方法及设备 | |
CN107193672B (zh) | 一种跨区块异步调用合约系统 | |
WO2001009791A3 (en) | A system, method and article of manufacture for resource administration in an e-commerce technical architecture | |
CN110750273A (zh) | 云平台自动部署方法及系统 | |
CN105677605A (zh) | 一种高效的可配置片上互联系统及其实现方法、装置 | |
CN113037858A (zh) | 一种实现手机与终端共享算力的系统及方法 | |
CN105306273A (zh) | 流程配置方法及装置 | |
CN110570158A (zh) | 电网台账电子化移交方法、系统以及计算机可读存储介质 | |
CN110597783A (zh) | 数据库管理方法、装置、设备及存储介质 | |
CN110333845A (zh) | 加速前端同构化应用程序的方法 | |
CN109857626A (zh) | 压力测试方法及装置 | |
CN109271337A (zh) | 一种基于hgx-2的gpu-box系统架构 | |
CN205754712U (zh) | 复合网络通讯组件 | |
CN109783430B (zh) | 表项快速同步的方法及系统 | |
CN103731501A (zh) | 基于移动终端的多人协同管理待办事项的方法和系统 | |
CN107563075A (zh) | 一种实现CosiMate网络和DDS网络互联的模块及其设计方法 | |
CN110430048A (zh) | 账户权限管理方法及装置 | |
CN110727475B (zh) | 基于配置化智能服务调用方法 | |
CN109347656B (zh) | 一种虚拟主机上行链路网卡配置的方法及系统 | |
CN107831824B (zh) | 时钟信号传递方法、装置、复用芯片和电子设备 | |
CN112463324A (zh) | 一种实现前端和后端分离的方法、计算机设备及存储介质 | |
CN109471672A (zh) | 一种浏览器插件前后台组件交互方法 | |
Hasenfuss | Performance analysis of (max,+) linear systems via Taylor series expansions | |
Zuberek et al. | Modeling and analysis of distributed state space generation for timed Petri nets | |
CN111382046B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191015 |
|
RJ01 | Rejection of invention patent application after publication |