CN110531982B - 一种自适应打包方法及系统 - Google Patents

一种自适应打包方法及系统 Download PDF

Info

Publication number
CN110531982B
CN110531982B CN201810500426.1A CN201810500426A CN110531982B CN 110531982 B CN110531982 B CN 110531982B CN 201810500426 A CN201810500426 A CN 201810500426A CN 110531982 B CN110531982 B CN 110531982B
Authority
CN
China
Prior art keywords
file
current
client
packaged
acquiring
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
CN201810500426.1A
Other languages
English (en)
Other versions
CN110531982A (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.)
Fujian TQ Digital Co Ltd
Original Assignee
Fujian TQ Digital 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 Fujian TQ Digital Co Ltd filed Critical Fujian TQ Digital Co Ltd
Priority to CN201810500426.1A priority Critical patent/CN110531982B/zh
Publication of CN110531982A publication Critical patent/CN110531982A/zh
Application granted granted Critical
Publication of CN110531982B publication Critical patent/CN110531982B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种自适应打包方法及系统,资源网关获取客户端下载当前文件的当前请求信息,并获取当前文件与后续文件的匹配度;判断匹配度是否符合预设匹配条件,若是,则请求包括当前文件与后续文件的打包文件,否则只请求包括当前文件的打包文件;获取打包文件,并将打包文件返回至客户端。本发明通过对当前文件与后续文件的匹配度,来决定当前文件与后续文件是否合并返回,即根据用户相关的请求信息决定最优的打包文件进行返回,以保证在下载大小和请求数之间取得最佳的平衡,从而优化用户体验,同时减少了请求数,从而减轻了服务端的压力。

Description

一种自适应打包方法及系统
技术领域
本发明涉及前端开发领域,特别涉及一种自适应打包方法及系统。
背景技术
随着前端工程化的发展,JS代码的规模也在不断地变大。相应的也产生了大量的方法和系统对JS打包、加载和运行效率进行优化。目前主要的加载策略是预加载、合并请求或者异步加载。而代码打包的优化集中在:
(1)、通过合并公共依赖,不可达代码裁剪等手段进行文件大小的优化;
(2)、通过合并代码减少下载请求数;
(3)、拆分异步代码以支持按需加载。
这些代码打包的共同点输出的是按配置及JS的匹配度产生唯一的拆分或合并的JS代码集合,之后进行分包的效果依赖于开发人员的工具选择和配置参数,这种输出一套代码的传统代码打包方式,使得所有的用户使用同一套代码,而不考虑不同用户的需求、带宽、访问路径等区别,服务器压力大且用户体验差。
发明内容
本发明所要解决的技术问题是:提供一种自适应打包方法及系统,减轻服务器压力并优化用户体验。
为了解决上述技术问题,本发明采用的技术方案为:
一种自适应打包方法,包括步骤:
S1、资源网关获取客户端下载当前文件的当前请求信息,并获取当前文件与后续文件的匹配度;
S2、判断所述匹配度是否符合预设匹配条件,若是,则请求包括当前文件与后续文件的打包文件,否则只请求包括当前文件的打包文件;
S3、获取所述打包文件,并将所述打包文件返回至客户端。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种自适应打包系统,包括资源网关,所述资源网关包括第一存储器、第一处理器及存储在第一存储器上并可在第一处理器上运行的第一计算机程序,所述第一处理器执行所述第一计算机程序时实现以下步骤:
S1、获取客户端下载当前文件的当前请求信息,并获取当前文件与后续文件的匹配度;
S2、判断所述匹配度是否符合预设匹配条件,若是,则请求包括当前文件与后续文件的打包文件,否则只请求包括当前文件的打包文件;
S3、获取所述打包文件,并将所述打包文件返回至客户端。
本发明的有益效果在于:提供一种自适应打包方法及系统,通过对当前文件与后续文件的匹配度,来决定当前文件与后续文件是否合并返回,即根据用户相关的请求信息决定最优的打包文件进行返回,以保证在下载大小和请求数之间取得最佳的平衡,从而优化用户体验,同时减少了请求数,从而减轻了服务端的压力,从而减少开发人员在部署方面的投入,让开发人员更专注于业务逻辑,减少了成本的同时提高了专业性。
附图说明
图1为本发明实施例的一种自适应打包方法的流程示意图;
图2为本发明实施例涉及的用户请求文件的概率示意图;
图3为本发明实施例的一种自适应打包系统的结构示意图;
图4为本发明实施例的一种自适应打包系统在应用时的结构示意图。
标号说明:
1、一种自适应打包系统;2、资源网关;3、第一存储器;4、第一处理器;5、分包服务器;6、第二存储器;7、第二处理器;8、客户端;9、存储服务器;10、数据持久化存储模块。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
本发明最关键的构思在于:通过对当前文件与后续文件的匹配度,来选择最合适的加载策略。
在此之前,为了便于理解本发明的技术方案,对于本发明中涉及的英文缩写、设备等进行说明如下:
(1)、JS:在本发明中为JavaScript的缩写,是一种属于网络的脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果,通常JavaScript脚本是通过嵌入在HTML中来实现自身的功能的。
(2)、Web服务器:意为网站服务器,它是指驻留于因特网上某种类型计算机的程序,可以向浏览器等Web客户端提供文档,也可以放置网站文件,让全世界浏览;也可以放置数据文件,让全世界下载。
(3)、ID:在本发明中为identification的缩写,其中文解释为身份标识号码,也称为序列号或帐号,它是某个体系中相对唯一的编码。
(4)、CDN:在本发明中为Content Delivery Network的简称,其中文解释为内容分发网络,它的基本原理是广泛采用各种缓存服务器,将这些缓存服务器分布到用户访问相对集中的地区或网络中,在用户访问网站时,利用全局负载技术将用户的访问指向距离最近的工作正常的缓存服务器上,由缓存服务器直接响应用户请求。
(5)、UA:在本发明中为user agent的简称,其中文名为用户代理,它是一个特殊字符串头,使得服务器能够识别客户使用的操作系统及版本、CPU类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等。
(6)、referrer:其中文解释为网站来路,意为访问者进入网站的任何途径。
(7)、SessionID:其中文解释为时域。在计算机专业术语中,它是指一个终端用户与交互系统进行通信的时间间隔,通常指从注册进入系统到注销退出系统之间所经过的时间。
(8)、gulp是一个自动化工具,前端开发者可以使用它来处理常见任务:搭建web服务器、文件保存时自动重载浏览器、使用预处理器如Sass、LESS、优化资源,比如压缩CSS、JavaScript、压缩图片,本发明用来压缩JS文件。
(9)、Node.js是一个基于Chrome JavaScript运行时建立的平台,用于方便地搭建响应速度快、易于扩展的网络应用。Node.js使用事件驱动、非阻塞I/O模型而得以轻量和高效,非常适合在分布式设备上运行数据密集型的实时应用。
(10)、Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
(11)、关于图2的说明如下:a:0.7表示用户请求a.js的条件概率值为0.7,g:0.9表示用户在依次请求a.js、e.js之后请求g.js的条件概率值为0.9,其中,a.js表示包含a内容的打包文件,在下文中出现的a+b.js表示包含a内容及b内容的打包文件,其中a/b为路径记法,对应图2的访问路径。a/b这里表示用户依序访问了a.js和b.js。g对a/e的条件概率表示用户依序访问了a.js和g.js之后,接下来请求g.js的概率。
请参照图1以及图2,一种自适应打包方法,包括步骤:
S1、资源网关获取客户端下载当前文件的当前请求信息,并获取当前文件与后续文件的匹配度;
S2、判断所述匹配度是否符合预设匹配条件,若是,则请求包括当前文件与后续文件的打包文件,否则只请求包括当前文件的打包文件;
S3、获取所述打包文件,并将所述打包文件返回至客户端。
其中,当用户访问特定的网页时会载入初始文件,并在之后的交互中不断按需异步加载其他文件。在一定时间内或者某个会话内,某个用户这些请求的文件形成了先后顺序关系。通过收集不同的用户请求的路径信息,我们能够判断最有可能的访问路径,并返回给用户,从而让用户整体加载效率最高。这里的加载效率指的是,匹配度符合预设匹配条件的文件通过打包,预加载从而减少请求数量,而匹配度不符合预设匹配条件尽量不打包到高频的打包文件中,从而减少下载无用的文件资源。
另外,资源网关请求包括当前文件与后续文件的打包文件,但包括当前文件与后续文件的打包文件并不一定存在,故而上述还包括步骤有:接收包括当前文件与后续文件的打包文件的不存在信息,重新请求包括当前文件的打包文件。
从上述描述可知,本发明的有益效果在于:提供一种自适应打包方法及系统,通过对当前文件与后续文件的匹配度,来决定当前文件与后续文件是否合并返回,即根据用户相关的请求信息决定最优的打包文件进行返回,以保证在下载大小和请求数之间取得最佳的平衡,从而优化用户体验;同时减少了请求数,从而减轻了服务端的压力;另外,系统能够根据实际情况进行自动打包,从而减少开发人员在部署方面的投入,让开发人员更专注于业务逻辑,减少了成本的同时提高了专业性。
进一步的,所述步骤S1具体为:
资源网关获取客户端下载当前文件的当前请求信息,记录客户端的会话标识并根据所述会话标识查找到会话样本;
获取会话样本中客户端的历史请求信息,得到历史请求信息中所请求的历史文件;
获取客户端在依次请求历史文件、当前文件后请求后续文件的匹配度。
其中,用户向远程发起的请求会包括多个特征信息,即资源网关接收到的当前请求信息中包括多个特征信息,如请求时间、编码、客户端ip、客户端user agent、referrer、又或者是SessionID或者是其他用户的登录凭证等。可以依据这些信息对相关联的请求进行分组,并标记为一个会话样本,所标记的会话样本,给予一个唯一ID作为标识,后续称为会话标识。
另外,若当前请求信息有为第一个请求,则创建新的会话样本。
由上述描述可知,本发明通过会话标识、会话样本来区分不同的用户的,个性化的加载路径,根据不同用户情况,返回最合适的JS资源文件。从而进一步优化用户体验。
进一步的,还包括步骤:
分包服务器获取客户端的会话样本,根据所述会话样本中的请求顺序生成分包策略,所述分包策略为当前文件与上一文件的匹配度符合预设匹配条件时,则将当前文件与上一文件打包为一个文件;
根据所述分包策略生成打包文件,将打包文件同步至存储服务器并将打包信息同步至资源网关。
由上述描述可知,在分包服务器中根据各个文件之间的匹配关系,将匹配度符合预设匹配条件的文件进行预先打包成一个文件,便于资源网关获取相应的打包文件。
进一步的,还包括步骤:
判断当前时间是否达到预设时间,若是,则判断当前请求数是否达到预设请求数,若是,则获取在预设时间内的所有请求信息对分包策略进行更新。
由上述描述可知,本发明根据实际情况进行动态调整,从而能自动适应用户行为甚至是网络条件的变化,从而提高本发明在实际应用中的灵活性和适应度。
进一步的,所述匹配度为条件概率值,所述符合预设匹配条件为大于预设概率值。
其中,用来计算两个文件之间的条件概率值不仅仅只是通过访问路径这一单一特征量,在实际使用中,还需要考虑的特征量有:文件大小、网速、用户等待时间等,同时上述特征量在结合贝叶斯分类器后,输出精准的分包策略,分包的算法应有合适的限制以保证,所有的文件不会倾向于最终合并成一个打包文件,这里列举如下特征量:
(1)、打包大小应有限制值,若要打包的文件超过限制值,放弃打包成一个文件。
(2)、路径中越深的文件打包的价值越低,概率阀值应置更高,比如第一层节点为0.5,第二层节点为0.6等。
(3)、同时合并的js层数应有所限制。
(4)、随机返回未打包资源,使用统计口径多样化。
(5)、可以结合客户端的统计计算命中率,向分包服务器报告,以调整分包策略,即进行动态调整。
由上述描述可知,提供了一个合理的匹配算法,从而保证分包策略的精准性。
请参照图3以及图4,一种自适应打包系统,包括资源网关,所述资源网关包括第一存储器、第一处理器及存储在第一存储器上并可在第一处理器上运行的第一计算机程序,所述第一处理器执行所述第一计算机程序时实现以下步骤:
S1、获取客户端下载当前文件的当前请求信息,并获取当前文件与后续文件的匹配度;
S2、判断所述匹配度是否符合预设匹配条件,若是,则请求包括当前文件与后续文件的打包文件,否则只请求包括当前文件的打包文件;
S3、获取所述打包文件,并将所述打包文件返回至客户端。
从上述描述可知,本发明的有益效果在于:提供一种自适应打包方法及系统,通过对当前文件与后续文件的匹配度,来决定当前文件与后续文件是否合并返回,即根据用户相关的请求信息决定最优的打包文件进行返回,以保证在下载大小和请求数之间取得最佳的平衡,从而优化用户体验;同时减少了请求数,从而减轻了服务端的压力;另外,系统能够根据实际情况进行自动打包,从而减少开发人员在部署方面的投入,让开发人员更专注于业务逻辑,减少了成本的同时提高了专业性。
进一步的,所述步骤S1具体为:
获取客户端下载当前文件的当前请求信息,记录客户端的会话标识并根据所述会话标识查找到会话样本;
获取会话样本中客户端的历史请求信息,得到历史请求信息中所请求的历史文件;
获取客户端在依次请求历史文件、当前文件后请求后续文件的匹配度。
由上述描述可知,本发明通过会话标识、会话样本来区分不同的用户的,个性化的加载路径,根据不同用户情况,返回最合适的JS资源文件。从而进一步优化用户体验。
进一步的,还包括分包服务器,所述分包服务器包括第二存储器、第二处理器及存储在第二存储器上并可在第二处理器上运行的第二计算机程序,其特征在于,所述第二处理器执行所述第二计算机程序时实现以下步骤:
获取客户端的会话样本,根据所述会话样本中的请求顺序生成分包策略,所述分包策略为当前文件与上一文件的匹配度符合预设匹配条件时,则将当前文件与上一文件打包为一个文件;
根据所述分包策略生成打包文件,将打包文件同步至存储服务器并将打包信息同步至资源网关。
由上述描述可知,在分包服务器中根据各个文件之间的匹配关系,将匹配度符合预设匹配条件的文件进行预先打包成一个文件,便于资源网关获取相应的打包文件。
进一步的,所述第二处理器执行所述第二计算机程序时还实现以下步骤:
判断当前时间是否达到预设时间,若是,则判断当前请求数是否达到预设请求数,若是,则获取在预设时间内的所有请求信息对分包策略进行更新。
由上述描述可知,本发明根据实际情况进行动态调整,从而能自动适应用户行为甚至是网络条件的变化,从而提高本发明在实际应用中的灵活性和适应度。
进一步的,所述匹配度为条件概率值,所述符合预设匹配条件为大于预设概率值。
由上述描述可知,提高一个合理的匹配算法,从而保证分包策略的精准性。
请参照图1以及图2,本发明的实施例一为:
一种自适应打包方法,本实施例为对JS代码进行打包,其包括步骤:
S1、资源网关获取客户端下载当前文件的当前请求信息,记录客户端的会话标识并根据会话标识查找到会话样本,例如当前请求信息请求下载e.js;
获取会话样本中客户端的历史请求信息,得到历史请求信息中所请求的历史文件,从图2可知,当请求下载e.js时,历史请求信息中所请求的历史文件为
a.js;
获取用户在依次请求历史文件、当前文件后请求后续文件的条件概率值,从图2可知,在依次请求a.js、e.js后,请求g.js的条件概率值为0.9;
S2、判断条件概率值是否大于预设概率值,若是,则请求包括当前文件与后续文件的打包文件,否则只请求包括当前文件的打包文件,在本实施例中预设概率值可以设为0.5,可见在依次请求a.js、e.js后请求g.js的的条件概率值大于预设概率值,则资源网关请求e+g.js,若没有e+g.js,则重新请求e.js;
S3、获取打包文件,并将打包文件返回至客户端,若是请求到e+g.js,则将e+g.js返回至用户,否则返回e.js。
其中,还包括步骤:
S4、分包服务器获取客户端的会话样本,根据会话样本中的请求顺序生成分包策略,分包策略为当前文件与上一文件的条件概率值符合预设匹配条件时,则将当前文件与上一文件打包为一个文件;
S5、根据分包策略生成打包文件,将打包文件同步至存储服务器并将打包信息同步至资源网关。
在本实施例中,上述步骤又具体为:
S41、按资源网关收集到的用户请求顺序统计出每个请求之间的依赖关系。其中本实施例使用条件概率计算每一步中每一JS文件相对前面的请求的条件概率值。假设统计结果显示当用户第一次请求了c.js后一定会请求f.js,则显示f跟e有很强的联系,其条件概率f/e为100%。条件概率计算结果可以以前缀树的数据结构表示,具体参考图2。当计算完成之后根据树的情况进行裁剪路径比较深的分支,或概率极小的没有处理价值的分支,比如图2中b.js、d.js之后便没有分支。
S42、对文件进行划分。划分是生成新的分包策略的过程,当满足一定的触发条件时,如用户访问数据超过一定数量或访问路径的分布发生了变化。需要重新对包进行划分,分包策略是将条件概率高的分支打包一起。
以图2的统计结果为例,第一层子节点,分别打包为a.js、b.js、c.js;第二层子节点中,打包d.js,用户在请求a.js后请求e.js的条件概率值为0.75,可以打包为a+g.js,用户在请求c.js后请求f.js的条件概率值为1;在第三层节点中,用户在依次请求a.js、e.js后请求g.js的条件概率值为0.9,可以打包为e+g.js,另外,由于用户在请求a.js后,连续请求e.js、g.js的条件概率值为0.75*0.9=0.675,故而可以打包为a+e+g.js,具体可以按文件打包大小、概率与路径尝试等参数进行调整。
S51、产生分包策略后,执行打包步骤,市面上的打包工具比较多如gulp,可以使用工具按分包策略对JS文件进行合并和压缩,输出实际的打包文件。
S52、通过原有的代码部署流程将代码发布到存储服务器。
S53、将发布的分包信息,同步到资源网关,需要注意的是这个重新分包的过程是动态的,会随着用户使用情况的变化,而重新调整分包策略,从而实现最优的文件打包和下载策略。
对于上述步骤S42中的触发条件,还包括步骤:
S6、判断当前时间是否达到预设时间,若是,则判断当前请求数是否达到预设请求数,若是,则获取在预设时间内的所有请求信息对分包策略进行更新。
在本实施例中,预设时间为一个月,预设请求数为100万次,这是基于这个假设,即用户的行为在一定的时间内,在样本数足够大的情况下行为会呈现出一定的统计分布规律。
另外,为了实现更理想的分包效果,本实施例还提供了下列的触发策略:
(1)、当用户的访问路径分布发生了变化。原来访问路径以a/c为主,最新的统计显示用户访问路径大部分集中在e/f。这种变化可以通过定时进行离线统计得知,这表明用户偏好,或者是上层的业务发生了变更,比如入口调整或者外部引流,这种情况下原来的统计特性已不再适用,需要进行对文件包进行重新划分。
(2)、但是为了减少打包对外部变化过度敏感需要加额外的限制,其一,访问路径的分布变化,必须是显著的:判断方法是按路径访问数量排序,主要的访问路径是不是发生了变化,原来主要是a/c现在是e/f,也可以采用KS检验等统计学的方式;其二,访问路径的分布变化,必须持续的:在一周的时间内呈现出稳定的统计分布。
与本发明等同实施例的其它实施例中,业务可以结合自身的特点进行判断并灵活设置。
请参照图3以及图4,本发明的实施例二为:
一种自适应打包系统1,包括资源网关2、分包服务器5,资源网关2包括第一存储器3、第一处理器4及存储在第一存储器3上并可在第一处理器4上运行的第一计算机程序,分包服务器5包括第二存储器6、第二处理器7及存储在第二存储器6上并可在第二处理器7上运行的第二计算机程序,第一处理器4执行第一计算机程序时实现上述实施例一中的步骤S1至步骤S3;第二处理器7执行第二计算机程序时实现上述实施例一中的步骤S4至步骤S6。
其中,如图4所示,本实施例中的一种自适应打包系统在实际应用中与客户端8、数据持久化存储模块10以及存储服务器9进行配合使用,
其中,当前请求信息是由用户通过客户端8发出的,客户端8是指编程语言的运行环境,本发明为JS运行环境,例如手机浏览器、桌面浏览器或者基于浏览器内核的桌面运行环境,也可以是需要远程载入JS文件的Node.js。
其中,资源网关2负责代理JS资源请求,其主要职责如下:
(1)、对客户端8保持一致的接口,客户端8不需要因为JS文件重新打包而改变请求接口。
(2)、使用统计推理的方式,执行上述实施例一中的步骤S1至步骤S3,其实际进行的是代码的预加载。
(3)、记录最新的JS打包分包信息,即获取分包服务器5发布的分包信息并更新。
(4)、保存与打包算法相关的用户请求信息,资源网关2实际部署时可以在存储服务器9中以控制器的方式存在,也可以在存储服务器9之外以代理的方式存在,不会改变系统的逻辑结构关系。
其中,保存与打包算法相关的用户请求信息具体如下:当用户请求JS文件时,资源网关2记录请求,并维护一份当前会话的JS请求信息。包括以下内容:,会话标识、请求时间、JS资源名称,会话样本当中的JS资源名称的请求时间顺序的关系可以计算出相互的条件概率值,条件概率值作为后续分包服务器5分包策略的依据。
其中,分包服务器5执行上述实施例一中的步骤S4至步骤S6,其总结为负责根据最新的数据,调整打包策略,更新打包文件,并通知相关系统打包变更及部署的信息。
其中,存储服务器9负责物理JS文件的存储,可以是普通的web服务器或CDN或者其他可以保存文件内容的网络设备之中,例如小的高频访问的文件可以序列化存储至Redis中。
其中,数据持久化存储模块10表示资源网关2采集的请求数据,存放请求数据的数据持久化存储模块10可以是独立的数据库、日志系统或者消息队列等可以进行数据持久化存储的基础设施;也可以集成到资源网关2通过节点文件保存。
综上,本发明提供一种自适应打包方法及系统,通过对当前文件与后续文件的匹配度,来决定当前文件与后续文件是否合并返回,即根据用户相关的请求信息决定最优的打包文件进行返回,以保证在下载大小和请求数之间取得最佳的平衡,从而优化用户体验;同时减少了请求数,从而减轻了服务端的压力,从而减少开发人员在部署方面的投入,让开发人员更专注于业务逻辑,减少了成本的同时提高了专业性;通过会话标识、会话样本来区分不同的用户的,个性化的加载路径,根据不同用户情况,返回最合适的JS资源文件,从而进一步优化用户体验,即本发明整体上提供了一种用户体验较佳、服务器压力小、投入成本低、专业性程度高且具有较强的适应性和灵活性的打包方法及系统。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (6)

1.一种自适应打包方法,其特征在于,包括步骤:
S1、资源网关获取客户端下载当前文件的当前请求信息,并获取当前文件与后续文件的匹配度;
S2、判断所述匹配度是否符合预设匹配条件,若是,则请求包括当前文件与后续文件的打包文件,否则只请求包括当前文件的打包文件;
S3、获取所述打包文件,并将所述打包文件返回至客户端;
所述步骤S1具体为:
资源网关获取客户端下载当前文件的当前请求信息,记录客户端的会话标识并根据所述会话标识查找到会话样本;
获取会话样本中客户端的历史请求信息,得到历史请求信息中所请求的历史文件;
获取客户端在依次请求历史文件、当前文件后请求后续文件的匹配度;
所述匹配度为条件概率值,所述符合预设匹配条件为大于预设概率值。
2.根据权利要求1所述的一种自适应打包方法,其特征在于,还包括步骤:
分包服务器获取客户端的会话样本,根据所述会话样本中的请求顺序生成分包策略,所述分包策略为当前文件与上一文件的匹配度符合预设匹配条件时,则将当前文件与上一文件打包为一个文件;
根据所述分包策略生成打包文件,将打包文件同步至存储服务器并将打包信息同步至资源网关。
3.根据权利要求2所述的一种自适应打包方法,其特征在于,还包括步骤:
判断当前时间是否达到预设时间,若是,则判断当前请求数是否达到预设请求数,若是,则获取在预设时间内的所有请求信息对分包策略进行更新。
4.一种自适应打包系统,包括资源网关,所述资源网关包括第一存储器、第一处理器及存储在第一存储器上并可在第一处理器上运行的第一计算机程序,其特征在于,所述第一处理器执行所述第一计算机程序时实现以下步骤:
S1、获取客户端下载当前文件的当前请求信息,并获取当前文件与后续文件的匹配度;
S2、判断所述匹配度是否符合预设匹配条件,若是,则请求包括当前文件与后续文件的打包文件,否则只请求包括当前文件的打包文件;
S3、获取所述打包文件,并将所述打包文件返回至客户端;
所述步骤S1具体为:
获取客户端下载当前文件的当前请求信息,记录客户端的会话标识并根据所述会话标识查找到会话样本;
获取会话样本中客户端的历史请求信息,得到历史请求信息中所请求的历史文件;
获取客户端在依次请求历史文件、当前文件后请求后续文件的匹配度;
所述匹配度为条件概率值,所述符合预设匹配条件为大于预设概率值。
5.根据权利要求4所述的一种自适应打包系统,其特征在于,还包括分包服务器,所述分包服务器包括第二存储器、第二处理器及存储在第二存储器上并可在第二处理器上运行的第二计算机程序,其特征在于,所述第二处理器执行所述第二计算机程序时实现以下步骤:
获取客户端的会话样本,根据所述会话样本中的请求顺序生成分包策略,所述分包策略为当前文件与上一文件的匹配度符合预设匹配条件时,则将当前文件与上一文件打包为一个文件;
根据所述分包策略生成打包文件,将打包文件同步至存储服务器并将打包信息同步至资源网关。
6.根据权利要求5所述的一种自适应打包系统,其特征在于,所述第二处理器执行所述第二计算机程序时还实现以下步骤:
判断当前时间是否达到预设时间,若是,则判断当前请求数是否达到预设请求数,若是,则获取在预设时间内的所有请求信息对分包策略进行更新。
CN201810500426.1A 2018-05-23 2018-05-23 一种自适应打包方法及系统 Active CN110531982B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810500426.1A CN110531982B (zh) 2018-05-23 2018-05-23 一种自适应打包方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810500426.1A CN110531982B (zh) 2018-05-23 2018-05-23 一种自适应打包方法及系统

Publications (2)

Publication Number Publication Date
CN110531982A CN110531982A (zh) 2019-12-03
CN110531982B true CN110531982B (zh) 2022-12-13

Family

ID=68656445

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810500426.1A Active CN110531982B (zh) 2018-05-23 2018-05-23 一种自适应打包方法及系统

Country Status (1)

Country Link
CN (1) CN110531982B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102387195A (zh) * 2011-09-29 2012-03-21 畅捷通信息技术股份有限公司 基于定向web服务器的资源加速下载系统和方法
CN106325958A (zh) * 2016-08-30 2017-01-11 北京小米移动软件有限公司 代码下载方法和编译服务器
CN106933865A (zh) * 2015-12-31 2017-07-07 北京五八信息技术有限公司 移动应用程序网页应用的资源加载方法及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016088237A1 (ja) * 2014-12-04 2016-06-09 富士通株式会社 配信方法、装置、及びプログラム
US10219039B2 (en) * 2015-03-09 2019-02-26 The Nielsen Company (Us), Llc Methods and apparatus to assign viewers to media meter data

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102387195A (zh) * 2011-09-29 2012-03-21 畅捷通信息技术股份有限公司 基于定向web服务器的资源加速下载系统和方法
CN106933865A (zh) * 2015-12-31 2017-07-07 北京五八信息技术有限公司 移动应用程序网页应用的资源加载方法及装置
CN106325958A (zh) * 2016-08-30 2017-01-11 北京小米移动软件有限公司 代码下载方法和编译服务器

Also Published As

Publication number Publication date
CN110531982A (zh) 2019-12-03

Similar Documents

Publication Publication Date Title
US10171550B1 (en) Static tracker
US8452925B2 (en) System, method and computer program product for automatically updating content in a cache
US20190349415A1 (en) Maintaining independent states for multiple web browser instances
US9384297B2 (en) Systems and methods of accelerating delivery of remote content
US10817663B2 (en) Dynamic native content insertion
US9077681B2 (en) Page loading optimization using page-maintained cache
US8775550B2 (en) Caching HTTP request and response streams
US9292467B2 (en) Mobile resource accelerator
US8874694B2 (en) Adaptive packaging of network resources
KR101391894B1 (ko) 콘텐츠 요청 최적화
TWI670611B (zh) 網頁文件發送方法、網頁渲染方法及裝置、網頁渲染系統
US10091289B2 (en) Provisional execution of dynamic content component
US6944827B2 (en) System and method of data transmission for computer networks utilizing HTTP
WO2019042240A1 (zh) 一种短链接解析方法、装置及设备
US20160246895A1 (en) Identifying correlated components of dynamic content
US20180285470A1 (en) A Mobile Web Cache Optimization Method Based on HTML5 Application Caching
CN107517254B (zh) 一种动态数据请求处理系统及方法
US20190102237A1 (en) Recommending applications based on call requests between applications
CN110221871B (zh) 网页获取方法、装置、计算机设备及存储介质
CN102222108B (zh) 脚本处理方法和脚本处理装置
US10334014B2 (en) Accessing connected service resources in a distributed application programming interface
US10165036B1 (en) Network resource remote process execution
CN110531982B (zh) 一种自适应打包方法及系统
CN106293746B (zh) 浏览器脚本的更新方法及系统
KR102196403B1 (ko) 재지향 감소

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