函数加载方法及装置、计算机可读存储介质、终端制造方法及图纸

技术编号:20024938 阅读:20 留言:0更新日期:2019-01-06 04:07
一种函数加载方法及装置、计算机可读存储介质、终端,所述方法包括以下步骤:对在浏览器中运行的代码进行监测;根据监测结果从服务器加载函数,每次加载的函数是所述代码所需的全部函数的一部分。本发明专利技术方案可以减少浏览器单次从服务器加载的函数数量,从而减少单次加载时间,尽量减少或避免浏览器崩溃的问题。

【技术实现步骤摘要】
函数加载方法及装置、计算机可读存储介质、终端
本专利技术涉及计算机
,尤其是一种函数加载方法及装置、计算机可读存储介质、终端。
技术介绍
在现有技术中,在浏览器运行代码时,采用的方法为首先对所述代码所需的全部函数进行加载,进而逐个或逐批调用加载后的函数以运行该代码。但是,现阶段许多大型程序包含的函数数量非常巨大,容易导致在浏览器运行时加载时间过长甚至崩溃的问题。例如当所述大型程序为一个大型游戏项目时,容易使移动设备浏览器在游戏过程中出现卡机或死机,降低用户体验。
技术实现思路
本专利技术解决的技术问题是提供一种函数加载方法,可以减少浏览器单次从服务器加载的函数数量,从而减少单次加载时间,尽量减少或避免浏览器崩溃的问题。为解决上述技术问题,本专利技术实施例提供一种函数加载方法,包括以下步骤:对在浏览器中运行的代码进行监测;根据监测结果从服务器加载函数,每次加载的函数是所述代码所需的全部函数的一部分。可选的,所述代码中设置有多个阶段切换点,所述根据监测结果从服务器加载函数包括:在检测到所述阶段切换点时,根据加载列表确定下一阶段的每个待加载函数是否已加载;加载未加载的待加载函数;其中,所述阶段切换点的位置由所述服务器配置,相邻阶段切换点之间的每个阶段具有一个或多个待加载函数。可选的,所述加载列表是预先从所述服务器获取的。可选的,在加载未加载的待加载函数之前,所述的函数加载方法还包括:对于已加载的函数,卸载所述下一阶段的待加载函数以外的函数。可选的,所述根据监测结果从服务器加载函数包括:当监测结果表明所述函数被调用且未被加载时,从所述服务器加载所述函数。可选的,所述从所述服务器加载所述函数之后,所述的函数加载方法包括:将所述函数追加到已加载函数队列的尾部;其中,所述已加载函数队列中按照加载先后顺序记录有已加载的函数。可选的,从所述服务器加载所述函数之前,所述的函数加载方法还包括:确定所述已加载函数队列中包括的函数的数目;当所述函数的数目超出第一预设数目时,从所述已加载函数队列的头部依序移除已加载的函数,并且卸载被移除的函数,直至所述已加载函数队列中的函数数目少于等于所述第一预设数目。可选的,所述的函数加载方法还包括:向所述服务器发送所述已加载函数队列。可选的,所述的函数加载方法还包括:当所述监测结果表明所述函数被调用且已记录于所述已加载函数队列时,将所述函数调换至所述已加载函数队列的尾部。可选的,从所述服务器加载所述函数之前,所述的函数加载方法还包括:确定已加载的函数的数目;当所述数目超出第二预设数目时,从所述已加载的函数中依序卸载最早加载的函数,直至已加载的函数的数目少于等于所述第二预设数目。可选的,所述的函数加载方法还包括:向服务器发送卸载后的已加载的函数的列表。为解决上述技术问题,本专利技术实施例提供一种函数加载装置,包括:监测模块,适于对在浏览器中运行的代码进行监测;加载模块,适于根据监测结果从服务器加载函数,每次加载的函数是所述代码所需的全部函数的一部分。可选的,所述代码中设置有多个阶段切换点,所述加载模块包括:确定子模块,适于在检测到所述阶段切换点时,根据加载列表确定下一阶段的每个待加载函数是否已加载;第一加载子模块,适于加载未加载的待加载函数;其中,所述阶段切换点的位置由所述服务器配置,相邻阶段切换点之间的每个阶段具有一个或多个待加载函数。可选的,所述加载列表是预先从所述服务器获取的。可选的,所述的函数加载装置还包括:第一卸载模块,适于在加载未加载的待加载函数之前,对于已加载的函数,卸载所述下一阶段的待加载函数以外的函数。可选的,所述加载模块包括:第二加载子模块,适于当监测结果表明所述函数被调用且未被加载时,从所述服务器加载所述函数。可选的,所述的函数加载装置还包括:追加模块,适于从所述服务器加载所述函数之后,将所述函数追加到已加载函数队列的尾部;其中,所述已加载函数队列中按照加载先后顺序记录有已加载的函数。可选的,所述的函数加载装置还包括:第一数目确定模块,适于从所述服务器加载所述函数之前,确定所述已加载函数队列中包括的函数的数目;第二卸载模块,适于当所述函数的数目超出第一预设数目时,从所述已加载函数队列的头部依序移除已加载的函数,并且卸载被移除的函数,直至所述已加载函数队列中的函数数目少于等于所述第一预设数目。可选的,所述的函数加载装置还包括:第一发送模块,适于向所述服务器发送所述已加载函数队列。可选的,所述的函数加载装置还包括:调换模块,适于当所述监测结果表明所述函数被调用且已记录于所述已加载函数队列时,将所述函数调换至所述已加载函数队列的尾部。可选的,所述的函数加载装置还包括:第二数目确定模块,适于确定已加载的函数的数目;第三卸载模块,适于当所述数目超出第二预设数目时,从所述已加载的函数中依序卸载最早加载的函数,直至已加载的函数的数目少于等于所述第二预设数目。可选的,所述的函数加载装置还包括:第二发送模块,适于向服务器发送卸载后的已加载的函数的列表。为解决上述技术问题,本专利技术实施例提供一种计算机可读存储介质,其上存储有计算机指令,所述计算机指令运行时执行上述函数加载方法的步骤。为解决上述技术问题,本专利技术实施例提供一种终端,包括存储器和处理器,所述存储器上存储有能够在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行上述函数加载方法的步骤。与现有技术相比,本专利技术实施例的技术方案具有以下有益效果:在本专利技术实施例中,对在浏览器中运行的代码进行监测;根据监测结果从服务器加载函数,每次加载的函数是所述代码所需的全部函数的一部分。采用上述方案,对于浏览器中运行代码所需的全部函数,可以每次加载其中的一部分,相比于现有技术中对全部函数进行加载,有助于减少单次加载函数的数量,从而减少单次加载时间,尽量减少或避免浏览器崩溃的问题。进一步,在本专利技术实施例中,按照阶段切换点将函数划分为不同阶段,进而分阶段加载未加载的待加载函数,相比于现有技术中对全部函数进行加载,有助于减少单次加载函数的数量。进一步,在本专利技术实施例中,在加载未加载的待加载函数之前,对于已加载的函数,卸载所述下一阶段的待加载函数以外的函数,从而有助于减少内存空间的存储压力。进一步,在本专利技术实施例中,在函数被调用且未被加载时,从所述服务器加载所述函数,相比于现有技术中对该程序中所有的函数预先进行加载,通过在被调用时进行实时加载,有助于减少单次加载函数的数量。进一步,通过从所述服务器加载所述函数之后,将所述函数追加到已加载函数队列的尾部,或者在函数被调用且已记录于所述已加载函数队列时,将所述函数调换至所述已加载函数队列的尾部,进而在已加载的函数的数目超出预设数目时,从所述已加载函数队列的头部依序移除已加载的函数,并且卸载被移除的函数,直至所述已加载函数队列中的函数数目少于等于所述第一预设数目。在本专利技术实施例中,可以在减少内存空间的存储压力的同时,减少对近期加载的函数进行卸载的可能性,避免影响程序运行以及重复加载。附图说明图1是本专利技术实施例中一种函数加载方法的流程图;图2是图1中步骤S12的一种具体实施方式的流程图;图3是本专利技术实施例中一种函数加载方法的数据流图;图4是本专利技术实施例中另一种函数加载方法的流程图;图5是本专利技术实施例中另一种函本文档来自技高网...

【技术保护点】
1.一种函数加载方法,其特征在于,包括以下步骤:对在浏览器中运行的代码进行监测;根据监测结果从服务器加载函数,每次加载的函数是所述代码所需的全部函数的一部分。

【技术特征摘要】
1.一种函数加载方法,其特征在于,包括以下步骤:对在浏览器中运行的代码进行监测;根据监测结果从服务器加载函数,每次加载的函数是所述代码所需的全部函数的一部分。2.根据权利要求1所述的函数加载方法,其特征在于,所述代码中设置有多个阶段切换点,所述根据监测结果从服务器加载函数包括:在检测到所述阶段切换点时,根据加载列表确定下一阶段的每个待加载函数是否已加载;加载未加载的待加载函数;其中,所述阶段切换点的位置由所述服务器配置,相邻阶段切换点之间的每个阶段具有一个或多个待加载函数。3.根据权利要求2所述的函数加载方法,其特征在于,所述加载列表是预先从所述服务器获取的。4.根据权利要求2所述的函数加载方法,其特征在于,在加载未加载的待加载函数之前,还包括:对于已加载的函数,卸载所述下一阶段的待加载函数以外的函数。5.根据权利要求1所述的函数加载方法,其特征在于,所述根据监测结果从服务器加载函数包括:当监测结果表明所述函数被调用且未被加载时,从所述服务器加载所述函数。6.根据权利要求5所述的函数加载方法,其特征在于,所述从所述服务器加载所述函数之后包括:将所述函数追加到已加载函数队列的尾部;其中,所述已加载函数队列中按照加载先后顺序记录有已加载的函数。7.根据权利要求6所述的函数加载方法,其特征在于,从所述服务器加载所述函数之前,还包括:确定所述已加载函数队列中包括的函数的数目;当所述函数的数目超出第一预设数目时,从所述已加载函数队列的头部依序移除已加载的函数,并且卸载被移除的函数,直至所述已加载函数队列中的函数数目少于等于所述第一预设数目。8.根据权利要求7所述的函数加载方法,其特征在于,还包括:向所述服务器发送所述已加载函数队列。9.根据权利要求6所述的函数加载方法,其特征在于,还包括:当所述监测结果表明所述函数被调用且已记录于所述已加载函数队列时,将所述函数调换至所述已加载函数队列的尾部。10.根据权利要求5所述的函数加载方法,其特征在于,从所述服务器加载所述函数之前,还包括:确定已加载的函数的数目;当所述数目超出第二预设数目时,从所述已加载的函数中依序卸载最早加载的函数,直至已加载的函数的数目少于等于所述第二预设数目。11.根据权利要求10所述的函数加载方法,其特征在于,还包括:向服务器发送卸载后的已加载的函数的列表。12.一种函数加载装置,其特征在于,包括:监测模块,适于对在浏览器中运行的代码进行监测;加载模块,适于根据监测结果从服务器加载函数,每次加载的函数是所述代码所需的全部函数的一部分。13.根据权利要求12所述的函数加载装置,其特征在于,所述代码中设置有多个阶段切...

【专利技术属性】
技术研发人员:李爽
申请(专利权)人:上海木鸡网络科技有限公司
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1