CN111666516A - 页面加载方法、装置、电子设备及存储介质 - Google Patents
页面加载方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN111666516A CN111666516A CN202010334781.3A CN202010334781A CN111666516A CN 111666516 A CN111666516 A CN 111666516A CN 202010334781 A CN202010334781 A CN 202010334781A CN 111666516 A CN111666516 A CN 111666516A
- Authority
- CN
- China
- Prior art keywords
- cached
- memory
- resources
- page
- components
- 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
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/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9574—Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明实施例提供了一种页面加载方法、装置、电子设备及存储介质。页面加载方法包括:响应于页面加载指令,查找内存中是否已缓存待加载页面中包含的部分组件对应的资源;在查找到所述内存中已缓存部分组件对应的资源后,加载所述内存中已缓存的部分组件对应的资源。本发明实施例通过在内存中缓存部分组件的资源,在加载页面时可以从内存中加载已缓存的部分资源,从而减少I/O操作的次数,降低对移动终端的电量消耗。
Description
技术领域
本发明涉及数据处理技术领域,特别是涉及一种页面加载方法、装置、电子设备及存储介质。
背景技术
随着互联网技术的飞速发展,应用于移动终端上的应用程序越来越多,应用程序的功能也越来越丰富。用户能够通过应用程序获取各种信息,比如通过应用程序观看视频、收听音乐等。
在应用程序运行过程中会加载大量页面,在加载页面时会调度CPU(CentralProcessing Unit,中央处理单元)进行I/O(Input/Output,输入/输出)操作,从磁盘中读取所需加载的资源,并对硬件设备进行相应控制,如显示画面、播放音频等。CPU进行I/O操作的过程较为复杂,消耗电量较大,并且I/O操作较为频繁,从而导致应用程序在加载页面的过程中对移动终端的电量消耗较大。
发明内容
本发明实施例的目的在于提供一种页面加载方法、装置、电子设备及存储介质,以实现降低应用程序对移动终端的电量消耗。具体技术方案如下:
在本发明实施的第一方面,首先提供了一种页面加载方法,包括:
响应于页面加载指令,查找内存中是否已缓存待加载页面中包含的部分组件对应的资源;
在查找到所述内存中已缓存部分组件对应的资源后,加载所述内存中已缓存的部分组件对应的资源。
可选地,所述内存中已缓存的资源通过如下方式得到:确定各级页面中公有的且包含资源最多的组件作为待缓存组件;从服务器中获取所述待缓存组件对应的需要缓存的资源,将所述需要缓存的资源缓存至所述内存中。
可选地,在响应于页面加载指令后,还包括:从服务器中获取所述待加载页面中包含的各组件对应的资源;所述待加载页面中包含的各组件对应有第一缓存指示信息;所述第一缓存指示信息用于指示组件是否需要缓存,多个页面中公有的且包含资源最多的组件的第一缓存指示信息被预设为组件需要缓存;在所述第一缓存指示信息为组件需要缓存时,所述服务器返回的资源携带有第二缓存指示信息,所述第二缓存指示信息用于指示资源是否需要缓存;选取第二缓存指示信息为资源需要缓存的资源,在根据选取的资源确定需要更新内存后,更新所述内存中已缓存的资源。
可选地,所述方法还包括:定期从服务器中获取所述内存中已缓存的组件对应的需要缓存的资源;在根据获取的资源确定需要更新内存后,更新所述内存中已缓存的资源。
可选地,所述方法还包括:在应用程序退出时,清空所述内存中已缓存的资源。
在本发明实施的第二方面,还提供了一种页面加载装置,包括:
查找模块,用于响应于页面加载指令,查找内存中是否已缓存待加载页面中包含的部分组件对应的资源;
加载模块,用于在所述查找模块查找到所述内存中已缓存部分组件对应的资源后,加载所述内存中已缓存的部分组件对应的资源。
可选地,所述内存中已缓存的资源通过如下模块得到:确定模块,用于确定各级页面中公有的且包含资源最多的组件作为待缓存组件;缓存模块,用于从服务器中获取所述待缓存组件对应的需要缓存的资源,将所述需要缓存的资源缓存至所述内存中。
可选地,所述装置还包括:获取模块,用于从服务器中获取所述待加载页面中包含的各组件对应的资源;所述待加载页面中包含的各组件对应有第一缓存指示信息;所述第一缓存指示信息用于指示组件是否需要缓存,多个页面中公有的且包含资源最多的组件的第一缓存指示信息被预设为组件需要缓存;在所述第一缓存指示信息为组件需要缓存时,所述服务器返回的资源携带有第二缓存指示信息,所述第二缓存指示信息用于指示资源是否需要缓存;第一更新模块,用于选取第二缓存指示信息为资源需要缓存的资源,在根据选取的资源确定需要更新内存后,更新所述内存中已缓存的资源。
可选地,所述装置还包括:第二更新模块,用于定期从服务器中获取所述内存中已缓存的组件对应的需要缓存的资源;在根据获取的资源确定需要更新内存后,更新所述内存中已缓存的资源。
可选地,所述装置还包括:清空模块,用于在应用程序退出时,清空所述内存中已缓存的资源。
在本发明实施的又一方面,还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序时,实现上述任一所述的页面加载方法。
在本发明实施的又一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述任一所述的页面加载方法。
在本发明实施的又一方面,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的页面加载方法。
本发明实施例提供的页面加载方法、装置、电子设备及存储介质,响应于页面加载指令,查找内存中是否已缓存待加载页面中包含的部分组件对应的资源;在查找到所述内存中已缓存部分组件对应的资源后,加载所述内存中已缓存的部分组件对应的资源。由此可知,本发明实施例通过在内存中缓存部分组件的资源,在加载页面时可以从内存中加载已缓存的部分资源,从而减少CPU进行I/O操作的次数,CPU从内存中加载资源相比于进行I/O操作从磁盘中加载资源来说,过程更加简便,消耗的电量更少,因此能够降低对移动终端的电量消耗。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本发明实施例中的一种应用程序与CPU之间通信的示意图。
图2为本发明实施例中的一种应用程序消耗电量的占比示意图。
图3为本发明实施例中的一种页面加载方法的步骤流程图。
图4为本发明实施例中的另一种页面加载方法的步骤流程图。
图5为本发明实施例中的一种页面加载装置的结构框图。
图6为本发明实施例中的另一种页面加载装置的结构框图。
图7为本发明实施例中的一种电子设备的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
应用程序安装到移动终端后,在应用程序的运行过程中会加载大量页面,加载页面的过程中会调度CPU去加载资源,控制硬件设备执行相应操作。
参照图1,示出了本发明实施例中的一种应用程序与CPU之间通信的示意图。如图1所示,在安装应用程序时,将应用程序装载到内存中。在运行应用程序时,CPU能够跟内存进行读写交互,装载到内存的应用程序在执行代码指令时,通过调度CPU控制硬件设备,比如控制硬件设备的显示、声音、蓝牙、定位、后台活动等。应用程序运行过程中加载页面时,会调度CPU进行I/O操作,从磁盘中读取所需加载的资源,并对硬件设备进行相应控制,在I/O操作的过程中对移动终端的电量消耗较大。
参照图2,示出了本发明实施例中的一种应用程序消耗电量的占比示意图。如图2所示,根据应用程序的使用情况,各应用程序都会消耗一定比例的电量。应用程序调度CPU进行I/O操作的频率高,如果得不到有效管理就会导致消耗较大的电量。
本发明实施例考虑到在硬件层面上,因为涉及到厂商和通信规范问题,并且普通的应用程序开发者不能对此进行优化,因此不考虑硬件层面的优化;在软件层面上,移动终端没有对电量管理提供了上层API(Application Programming Interface,应用程序编程接口),因此也不考虑此方面的优化。本发明实施例为了降低对电量的消耗,提出将部分资源缓存至内存中,在加载页面时可以调度CPU从内存中加载已缓存的部分资源,从而减少CPU进行I/O操作的次数,降低对移动终端的电量消耗。
本发明实施例中,移动终端可以为手机、平板电脑、可穿戴设备等,移动终端的操作系统可以为Android(安卓)系统、iOS系统等,本发明实施例对此不作限制。
下面,结合各个实施例对线程处理方法进行详细介绍。
图3为本发明实施例中的一种页面加载方法的步骤流程图。
本发明实施例中的页面加载方法可以包括以下步骤:
步骤301,响应于页面加载指令,查找内存中是否已缓存待加载页面中包含的部分组件对应的资源。
应用程序包含多个页面,每个页面中包含多个组件。比如,对于视频应用程序来说,可以包含“我的”页面、“推荐”页面、“热点”页面、“会员”页面,等等。在“我的”页面中包含“我的收藏”组件、“观看历史”组件、“我的下载”组件,等等。
在应用程序运行过程中,可以触发用于指示加载页面的页面加载指令,应用程序响应于页面加载指令后,要加载待加载页面中包含的各组件对应的资源。比如对于视频应用程序来说,用户可以点击主页中的“我的”按钮,从而触发生成用于指示加载“我的”页面的页面加载指令,应用程序获取“我的”页面中包含的各组件对应的资源。
本发明实施例中,为了减少CPU通过I/O操作从磁盘中加载资源的次数,可以预先将部分资源缓存至内存中。因此应用程序响应于页面加载指令,查找内存中是否已缓存待加载页面中包含的部分组件对应的资源。
步骤302,在查找到所述内存中已缓存部分组件对应的资源后,加载所述内存中已缓存的部分组件标识对应的资源。
如果查找到内存中已缓存部分组件对应的资源,则可以调度CPU从内存中加载该内存中已缓存的部分组件对应的资源。CPU从内存中加载资源的过程相比于进行I/O操作从磁盘中加载资源的过程更加简便,消耗电量更小。
应用程序页面中的资源可以通过服务器管理,从而提高应用程序的灵活性。在应用程序加载页面时,可以从服务器中下载资源(如文字、图片、音频、视频等),再渲染到移动终端上。因此,应用程序响应于页面加载指令,还可以向服务器发送页面加载请求,以便从服务器中下载待加载页面中包含的各组件对应的资源。对于内存中未缓存的部分组件对应的资源,可以加载从服务器中下载的相应资源。
本发明实施例通过在内存中缓存部分组件的资源,在加载页面时可以从内存中加载已缓存的部分资源,从而减少CPU进行I/O操作的次数,CPU从内存中加载资源相比于进行I/O操作从磁盘中加载资源来说,过程更加简便,消耗的电量更少,因此能够降低对移动终端的电量消耗。
图4为本发明实施例中的另一种页面加载方法的步骤流程图。
本发明实施例中的页面加载方法可以包括以下步骤:
步骤401,应用程序启动后,触发加载页面。
在应用程序启动后,用户可以点击页面中的按钮触发生成页面加载指令,应用程序响应于页面加载指令,执行下述操作。
步骤402,向服务器发起页面加载请求。
本发明实施例中,为了减少CPU进行I/O操作的次数,会将部分资源缓存至内存中。在一个应用程序中,不同的页面可能会包含同一组件。比如,在“我的”页面中包含“观看历史”组件,在“推荐”页面中也包含“观看历史”组件,等等。但是,同一组件在不同页面中时包含的资源量可能不同。比如,在“我的”页面中包含的“观看历史”组件中,包含资源1、2、3、4、5、6,在“推荐”页面中包含的“观看历史”组件中,包含资源1、2、3、4,等等。本发明实施例中,可以设置将各级页面中公有的且包含资源最多的组件对应的资源缓存至内存中,从而保证在加载包含该公有的组件的页面时,能够从内存中加载该公有的组件对应的资源,避免对公有的组件的资源进行重复的I/O操作。
因此,应用程序可以预先确定各级页面中公有的且包含资源最多的组件作为待缓存组件;并从服务器中获取所述待缓存组件对应的需要缓存的资源,将所述需要缓存的资源缓存至所述内存中。比如,应用程序在确定待缓存组件后,可以向服务器发起资源缓存请求,该资源缓存请求中可以携带待缓存组件的组件标识。服务器中保存有各组件对应的资源,对于待缓存组件来说,可能并不需要缓存该组件对应的全部资源,因此可以在服务器中预先设置待缓存组件对应的资源中,哪些资源需要缓存到内存。服务器在接收到资源缓存请求后,会查找各待缓存组件对应的需要缓存的资源,将各待缓存组件对应的需要缓存的资源返回给应用程序。应用程序接收到后,将待缓存组件对应的需要缓存的资源缓存至内存中。
本发明实施例中,应用程序响应于页面加载指令,一方面会从服务器中获取待加载页面中包含的各组件对应的资源。
针对每个页面中包含的每个组件,可以预设组件对应的第一缓存指示信息,该第一缓存指示信息用于指示组件是否需要缓存,多个页面中公有的且包含资源最多的组件的第一缓存指示信息被预设为组件需要缓存。应用程序响应于页面加载指令,获取待加载页面中包含的各组件的组件标识和待加载页面中包含的各组件的第一缓存指示信息。应用程序向服务器发送携带有所述各组件的组件标识和所述各组件的第一缓存指示信息的页面加载请求。
步骤403,查找内存中是否已缓存部分资源。若是,则执行步骤404;若否,则执行步骤407。
本发明实施例中,应用程序响应于页面加载指令,另一方面会查找内存中是否已缓存待加载页面中包含的部分组件对应的资源。
应用程序在获取到加载页面中包含的各组件的组件标识后,可以根据获取的组件标识查找内存中是否已缓存部分组件对应的资源。本发明实施例中,可以在内存中创建哈希表,通过哈希表缓存多个页面中公有的且包含资源最多的组件对应的组件标识及资源。在哈希表中,key(键)存储组件对应的组件标识,value(值)存储组件对应的资源。
需要说明的是,同一组件在不同页面中时的组件标识不同。比如,在“我的”页面中包含的“观看历史”组件的组件标识为A1,在“推荐”页面中包含的“观看历史”组件的组件标识为A2,等等。因此,在内存中还可以预先关联存储与哈希表中的组件标识代表同一组件的组件标识。比如,在哈希表中包括组件标识A1,则可以预先关联存储与组件标识A1代表同一组件的组件标识A2等。因此,查找内存中是否已缓存部分组件对应的资源的过程可以包括:针对获取的每个组件标识,从所述哈希表中查找是否存在与当前组件标识代表同一组件的组件标识;在所述哈希表中存在与当前组件标识代表同一组件的组件标识时,确定所述内存中已缓存当前组件标识对应的资源。
需要说明的是,上述步骤402与步骤403可以按任意顺序先后执行,也可以同时执行,本发明实施例对此不作限制。
步骤404,为已缓存的部分资源添加互斥锁。
在查找到内存中已缓存部分组件对应的资源后,要调度CPU从内存中加载对应的资源。本发明实施例中,为了避免多个线程同时调用查找到的已缓存的部分组件对应的资源,进而发生崩溃,可以在查找到内存中已缓存部分组件对应的资源后,为所述已缓存的部分组件对应的资源添加互斥锁,从而保证只有一个线程调用资源,避免多线程调用导致的崩溃。
在编程中,引入了互斥锁的概念,来保证共享数据操作的完整性。每个对象都对应于一个可称为“互斥锁”的标记,这个标记用来保证在任一时刻,只能有一个线程访问该对象。在实现中,可以通过两种方式创建互斥锁,静态方式和动态方式。比如,POSIX定义了一个宏PTHREAD_MUTEX_INITIALIZER来静态初始化互斥锁。动态方式是采用pthread_mutex_init()函数来初始化互斥锁。
步骤405,加载内存中已缓存的部分资源。
应用程序在查找到所述内存中已缓存部分组件对应的资源后,调度CPU从内存中加载所述内存中已缓存的部分组件对应的资源。
比如,内存中缓存有“我的”页面中包含的“观看历史”组件的组件标识和资源,其中组件标识为A1,资源为1、2、3、4、5、6。待加载页面为“推荐”页面,“推荐”页面中包含的“观看历史”组件的组件标识为A2,组件标识为A2的组件对应的资源为1、2、3、4。通过组件标识A2可以查找到内存中的组件标识A1与组件标识A2代表同一组件,因此可以从内存中缓存的组件标识A1对应的组件资源1、2、3、4、5、6中选取组件标识A2对应的组件资源1、2、3、4进行加载。
步骤406,为已缓存的部分资源删除互斥锁。
在加载所述内存中已缓存的部分组件对应的资源后,还可以删除为所述已缓存的部分组件对应的资源添加的互斥锁。比如,可以通过函数pthread_mutex_destroy()删除互斥锁。
步骤407,接收服务器返回的资源。
服务器中保存有各组件对应的资源。对于需要缓存的组件来说,可能并不需要缓存该组件对应的全部资源,因此可以在服务器中预先设置需要缓存的组件对应的资源中,哪些资源需要缓存到内存。服务器在接收到页面加载请求后,会查找页面加载请求中携带的各组件的组件标识对应的资源,并且针对第一缓存指示信息为组件需要缓存的组件,为该组件的资源添加第二缓存指示信息,该第二缓存指示信息用于指示资源是否需要缓存。服务器将各组件的组件标识对应的资源返回给应用程序,在返回的资源中,第一缓存指示信息为组件需要缓存的组件对应的资源携带有第二缓存指示信息。
步骤408,判断是否需要更新内存。若是,则执行步骤409;若否,则执行步骤410。
由于服务器中的资源可能会有更新,因此应用程序接收到服务器返回的资源后,选取第二缓存指示信息为资源需要缓存的资源,根据选取的资源判断是否需要更新内存。
步骤409,更新内存。
在根据选取的资源确定需要更新内存后,更新所述内存中已缓存的资源。
在一种可选实施方式中,可以将第二缓存指示信息为资源需要缓存的资源与内存中已缓存的对应资源进行对比。如果对比结果为不一致,则确定需要更新内存;否则,确定无需更新内存。如果需要更新内存,则利用接收到的第二缓存指示信息为资源需要缓存的资源覆盖内存中已缓存的对应资源。
在另一种可选实施方式中,可以由服务器在第二缓存指示信息为资源需要缓存的资源更新后,为该资源添加更新标识。应用程序在接收到资源后,查找是否存在添加有更新标识的资源,在查找到存在时确定需要更新内存,否则,确定无需更新内存。如果需要更新内存,则利用添加有更新标识的资源覆盖内存中已缓存的对应资源。
本发明实施例中,应用程序还可以自动地定期更新内存。因此,应用程序定期从服务器中获取所述内存中已缓存的组件对应的需要缓存的资源;在根据获取的资源确定需要更新内存后,更新所述内存中已缓存的资源。
比如,应用程序可以定期向服务器发起资源更新请求,该资源更新请求中可以携带待更新组件的组件标识,待更新组件是指内存中已缓存的组件。服务器在接收到资源更新请求后,会查找各待更新组件对应的需要缓存的资源,将各待更新组件对应的需要缓存的资源返回给应用程序。应用程序接收到后,根据待更新组件对应的需要缓存的资源确定是否需要更新内存,在确定需要更新后,更新内存中已缓存的资源。
在一种可选实施方式中,应用程序可以将待更新组件对应的需要缓存的资源与内存中已缓存的对应资源进行对比。如果对比结果为不一致,则确定需要更新内存;否则,确定无需更新内存。如果需要更新内存,则利用接收到的待更新组件对应的需要缓存的资源覆盖内存中已缓存的对应资源。
在另一种可选实施方式中,可以由服务器在需要缓存的资源更新后,为该资源添加更新标识。应用程序在接收到待更新组件对应的需要缓存的资源后,查找是否存在添加有更新标识的资源,在查找到存在时确定需要更新内存,否则,确定无需更新内存。如果需要更新内存,则利用添加有更新标识的资源覆盖内存中已缓存的对应资源。
通过更新内存,能够保证内存中缓存的资源为最新资源。在更新内存后,可以自动刷新页面,加载更新后的资源,也可以等待下次加载页面时从内存中加载更新后的资源。
比如,以下是获取角标的代码:
步骤410,加载内存中未缓存的部分资源。
在接收到所述服务器返回的待加载页面中包含的各组件对应的资源后,将所述各组件对应的资源存储至磁盘中,进行持久化处理。
应用程序调度所述CPU加载所述内存中未缓存的部分组件对应的资源。需要说明的是,如果当前的网络状况良好,则可以调度CPU从服务器返回的资源中加载内存中未缓存的部分组件对应的资源;如果当前的网络状况较差,则可以调度CPU从磁盘中加载内存中未缓存的部分组件对应的资源。
步骤411,应用程序退出时,清空内存中已缓存的资源。
在应用程序退出时,可以清空内存中已缓存的资源,也即清空哈希表中的数据。从而能够节省内存,避免对内存产生不必要的消耗。
图5为本发明实施例中的一种页面加载装置的结构框图。
本发明实施例中的页面加载装置可以包括以下模块:
查找模块501,用于响应于页面加载指令,查找内存中是否已缓存待加载页面中包含的部分组件对应的资源;
加载模块502,用于在查找到所述内存中已缓存部分组件对应的资源后,加载所述内存中已缓存的部分组件对应的资源。
本发明实施例通过在内存中缓存部分组件的资源,在加载页面时可以从内存中加载已缓存的部分资源,从而减少CPU进行I/O操作的次数,CPU从内存中加载资源相比于进行I/O操作从磁盘中加载资源来说,过程更加简便,消耗的电量更少,因此能够降低对移动终端的电量消耗。
图6为本发明实施例中的另一种页面加载装置的结构框图。
本发明实施例中的页面加载装置可以包括以下模块:
查找模块601,用于响应于页面加载指令,查找内存中是否已缓存待加载页面中包含的部分组件对应的资源;
加载模块602,用于在查找到所述内存中已缓存部分组件对应的资源后,加载所述内存中已缓存的部分组件对应的资源。
可选地,所述内存中已缓存的资源通过如下模块得到:确定模块603,用于确定各级页面中公有的且包含资源最多的组件作为待缓存组件;缓存模块604,用于从服务器中获取所述待缓存组件对应的需要缓存的资源,将所述需要缓存的资源缓存至所述内存中。
可选地,所述装置还包括:获取模块605,用于从服务器中获取所述待加载页面中包含的各组件对应的资源;所述待加载页面中包含的各组件对应有第一缓存指示信息;所述第一缓存指示信息用于指示组件是否需要缓存,多个页面中公有的且包含资源最多的组件的第一缓存指示信息被预设为组件需要缓存;在所述第一缓存指示信息为组件需要缓存时,所述服务器返回的资源携带有第二缓存指示信息,所述第二缓存指示信息用于指示资源是否需要缓存;第一更新模块606,用于选取第二缓存指示信息为资源需要缓存的资源,在根据选取的资源确定需要更新内存后,更新所述内存中已缓存的资源。
可选地,所述装置还包括:第二更新模块607,用于定期从服务器中获取所述内存中已缓存的组件对应的需要缓存的资源;在根据获取的资源确定需要更新内存后,更新所述内存中已缓存的资源。
可选地,所述装置还包括:清空模块608,用于在应用程序退出时,清空所述内存中已缓存的资源。
本发明实施例还提供了一种电子设备,如图7所示,包括处理器701、通信接口702、存储器703和通信总线704,其中,处理器701,通信接口702,存储器703通过通信总线704完成相互间的通信。
存储器703,用于存放计算机程序;
处理器701,用于执行存储器703上所存放的程序时,实现如下步骤:
响应于页面加载指令,查找内存中是否已缓存待加载页面中包含的部分组件对应的资源;
在查找到所述内存中已缓存部分组件对应的资源后,加载所述内存中已缓存的部分组件对应的资源。
可选地,所述内存中已缓存的资源通过如下方式得到:确定各级页面中公有的且包含资源最多的组件作为待缓存组件;从服务器中获取所述待缓存组件对应的需要缓存的资源,将所述需要缓存的资源缓存至所述内存中。
可选地,在响应于页面加载指令后,还包括:从服务器中获取所述待加载页面中包含的各组件对应的资源;所述待加载页面中包含的各组件对应有第一缓存指示信息;所述第一缓存指示信息用于指示组件是否需要缓存,多个页面中公有的且包含资源最多的组件的第一缓存指示信息被预设为组件需要缓存;在所述第一缓存指示信息为组件需要缓存时,所述服务器返回的资源携带有第二缓存指示信息,所述第二缓存指示信息用于指示资源是否需要缓存;选取第二缓存指示信息为资源需要缓存的资源,在根据选取的资源确定需要更新内存后,更新所述内存中已缓存的资源。
可选地,所述方法还包括:定期从服务器中获取所述内存中已缓存的组件对应的需要缓存的资源;在根据获取的资源确定需要更新内存后,更新所述内存中已缓存的资源。
可选地,所述方法还包括:在应用程序退出时,清空所述内存中已缓存的资源。
上述终端提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述终端与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的页面加载方法。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的页面加载方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (8)
1.一种页面加载方法,其特征在于,包括:
响应于页面加载指令,查找内存中是否已缓存待加载页面中包含的部分组件对应的资源;
在查找到所述内存中已缓存部分组件对应的资源后,加载所述内存中已缓存的部分组件对应的资源。
2.根据权利要求1所述的方法,其特征在于,所述内存中已缓存的资源通过如下方式得到:
确定各级页面中公有的且包含资源最多的组件作为待缓存组件;
从服务器中获取所述待缓存组件对应的需要缓存的资源,将所述需要缓存的资源缓存至所述内存中。
3.根据权利要求1所述的方法,其特征在于,在响应于页面加载指令后,还包括:
从服务器中获取所述待加载页面中包含的各组件对应的资源;所述待加载页面中包含的各组件对应有第一缓存指示信息;所述第一缓存指示信息用于指示组件是否需要缓存,多个页面中公有的且包含资源最多的组件的第一缓存指示信息被预设为组件需要缓存;在所述第一缓存指示信息为组件需要缓存时,所述服务器返回的资源携带有第二缓存指示信息,所述第二缓存指示信息用于指示资源是否需要缓存;
选取第二缓存指示信息为资源需要缓存的资源,在根据选取的资源确定需要更新内存后,更新所述内存中已缓存的资源。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
定期从服务器中获取所述内存中已缓存的组件对应的需要缓存的资源;
在根据获取的资源确定需要更新内存后,更新所述内存中已缓存的资源。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在应用程序退出时,清空所述内存中已缓存的资源。
6.一种页面加载装置,其特征在于,包括:
查找模块,用于响应于页面加载指令,查找内存中是否已缓存待加载页面中包含的部分组件对应的资源;
加载模块,用于在所述查找模块查找到所述内存中已缓存部分组件对应的资源后,加载所述内存中已缓存的部分组件对应的资源。
7.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-5中任一所述的方法。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-5中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010334781.3A CN111666516A (zh) | 2020-04-24 | 2020-04-24 | 页面加载方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010334781.3A CN111666516A (zh) | 2020-04-24 | 2020-04-24 | 页面加载方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111666516A true CN111666516A (zh) | 2020-09-15 |
Family
ID=72382955
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010334781.3A Pending CN111666516A (zh) | 2020-04-24 | 2020-04-24 | 页面加载方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111666516A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112433778A (zh) * | 2020-11-09 | 2021-03-02 | 北京奇艺世纪科技有限公司 | 一种移动设备页面显示方法、装置、电子设备及存储介质 |
CN112631682A (zh) * | 2020-12-28 | 2021-04-09 | 北京百度网讯科技有限公司 | 小程序处理方法、装置、设备及存储介质 |
CN112632428A (zh) * | 2020-12-25 | 2021-04-09 | 北京奇艺世纪科技有限公司 | 一种页面局部刷新方法、装置、设备和存储介质 |
CN112699321A (zh) * | 2020-12-23 | 2021-04-23 | 车智互联(北京)科技有限公司 | 一种页面加载方法,计算设备及存储介质 |
WO2023245368A1 (zh) * | 2022-06-20 | 2023-12-28 | 北京小米移动软件有限公司 | 应用控制方法、装置、电子设备以及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150199278A1 (en) * | 2013-01-30 | 2015-07-16 | Google Inc. | Clearing an application cache |
US20150215417A1 (en) * | 2012-08-20 | 2015-07-30 | International Business Machines Corporation | Managing a Data Cache for a Computer System |
CN108132954A (zh) * | 2016-11-30 | 2018-06-08 | 深圳联友科技有限公司 | 一种html页面的本地化加载方法及装置 |
CN109729314A (zh) * | 2018-12-24 | 2019-05-07 | 浙江大华技术股份有限公司 | 一种视频处理方法、装置、电子设备及存储介质 |
CN110162720A (zh) * | 2019-04-16 | 2019-08-23 | 平安科技(深圳)有限公司 | 网页页面加载方法、装置、计算机设备及存储介质 |
CN110727890A (zh) * | 2019-08-22 | 2020-01-24 | 中国平安财产保险股份有限公司 | 一种页面加载方法、装置及计算机设备、存储介质 |
CN110889062A (zh) * | 2019-11-15 | 2020-03-17 | 北京幻想纵横网络技术有限公司 | 页面加载方法及装置、终端和计算机可读存储介质 |
CN111046310A (zh) * | 2019-12-12 | 2020-04-21 | 北京奇艺世纪科技有限公司 | 页面处理方法、装置、服务器及计算机可读存储介质 |
-
2020
- 2020-04-24 CN CN202010334781.3A patent/CN111666516A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150215417A1 (en) * | 2012-08-20 | 2015-07-30 | International Business Machines Corporation | Managing a Data Cache for a Computer System |
US20150199278A1 (en) * | 2013-01-30 | 2015-07-16 | Google Inc. | Clearing an application cache |
CN108132954A (zh) * | 2016-11-30 | 2018-06-08 | 深圳联友科技有限公司 | 一种html页面的本地化加载方法及装置 |
CN109729314A (zh) * | 2018-12-24 | 2019-05-07 | 浙江大华技术股份有限公司 | 一种视频处理方法、装置、电子设备及存储介质 |
CN110162720A (zh) * | 2019-04-16 | 2019-08-23 | 平安科技(深圳)有限公司 | 网页页面加载方法、装置、计算机设备及存储介质 |
CN110727890A (zh) * | 2019-08-22 | 2020-01-24 | 中国平安财产保险股份有限公司 | 一种页面加载方法、装置及计算机设备、存储介质 |
CN110889062A (zh) * | 2019-11-15 | 2020-03-17 | 北京幻想纵横网络技术有限公司 | 页面加载方法及装置、终端和计算机可读存储介质 |
CN111046310A (zh) * | 2019-12-12 | 2020-04-21 | 北京奇艺世纪科技有限公司 | 页面处理方法、装置、服务器及计算机可读存储介质 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112433778A (zh) * | 2020-11-09 | 2021-03-02 | 北京奇艺世纪科技有限公司 | 一种移动设备页面显示方法、装置、电子设备及存储介质 |
CN112433778B (zh) * | 2020-11-09 | 2023-09-01 | 北京奇艺世纪科技有限公司 | 一种移动设备页面显示方法、装置、电子设备及存储介质 |
CN112699321A (zh) * | 2020-12-23 | 2021-04-23 | 车智互联(北京)科技有限公司 | 一种页面加载方法,计算设备及存储介质 |
CN112632428A (zh) * | 2020-12-25 | 2021-04-09 | 北京奇艺世纪科技有限公司 | 一种页面局部刷新方法、装置、设备和存储介质 |
CN112632428B (zh) * | 2020-12-25 | 2023-10-10 | 北京奇艺世纪科技有限公司 | 一种页面局部刷新方法、装置、设备和存储介质 |
CN112631682A (zh) * | 2020-12-28 | 2021-04-09 | 北京百度网讯科技有限公司 | 小程序处理方法、装置、设备及存储介质 |
WO2023245368A1 (zh) * | 2022-06-20 | 2023-12-28 | 北京小米移动软件有限公司 | 应用控制方法、装置、电子设备以及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111666516A (zh) | 页面加载方法、装置、电子设备及存储介质 | |
US10712915B2 (en) | Information presentation using a client on a terminal | |
RU2629448C2 (ru) | Система и способ управления и организации кэша веб-браузера | |
CN109522500B (zh) | 网页显示方法、装置、终端和存储介质 | |
CN111666497A (zh) | 应用程序的加载方法、装置、电子设备及可读存储介质 | |
CN111782339A (zh) | 一种容器创建方法、装置、电子设备及存储介质 | |
CN109117153B (zh) | 应用程序的处理方法、装置、终端和存储介质 | |
CN104038520A (zh) | 一种多版本分布式资源管理方法和系统 | |
CN110968331A (zh) | 应用程序运行的方法和装置 | |
CN109032693B (zh) | 一种加载展示信息方法、装置、电子设备及可读存储介质 | |
CN109947488B (zh) | 通用功能模块的对象初始化方法、装置、设备和存储介质 | |
CN113721936B (zh) | 一种应用管理方法及智能终端、装置及存储介质 | |
CN108268274B (zh) | 应用管理方法、装置、存储介质及电子设备 | |
CN114816389A (zh) | 一种基于元模型的管理系统搭建方法、装置、设备及介质 | |
CN111221651B (zh) | 负载均衡配置方法、装置、服务器及可读存储介质 | |
CN114756362A (zh) | 资源配额管理方法及系统、智能终端、存储介质 | |
CN110888690A (zh) | 一种应用启动方法、装置、电子设备及存储介质 | |
CN113992784A (zh) | 音视频通话方法、装置、计算机设备和存储介质 | |
CN112631608A (zh) | 编译方法、装置、终端及存储介质 | |
CN112631609A (zh) | 编译方法、装置、终端及存储介质 | |
CN109840156B (zh) | 一种数据缓存方法及其设备、存储介质、终端 | |
CN110888643A (zh) | 页面处理方法及装置 | |
CN109918153B (zh) | 页面打开方法和装置、页面内容检索方法和装置 | |
CN115514806B (zh) | 一种离散服务集群的感知发现方法及系统 | |
CN111274093B (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 |