本发明涉及计算机技术领域,尤其涉及一种页面生成方法、装置、电子设备及存储介质。
背景技术:
随着移动智能终端的普及和网络速度的优化,应用程序的开发需求越来越多,能够开发出极致的应用程序成为开发人员追求的目标。
一个页面打开时,有两个主要的耗时任务:1、页面初始化,包括加载布局文件、解析布局、创建ui元素对象等;2、网络数据请求,通过接口请求获取服务端的数据到本地,然后渲染到页面的ui元素上。现有的页面生成方式,如图1所示,任务2(网络数据请求)必须依赖任务1(页面初始化)完成之后才能执行,即任务1和任务2是串行执行的,所以一个页面从打开到最终展示完毕,所耗的总时间s=s1 s2,可见现有的方式会使页面生成的过程耗时更多。同时,若在任务1未完成时,任务2执行回调通知ui进行数据渲染,则会由于页面初始化未完成导致页面崩溃。
技术实现要素:
针对现有技术中存在的问题,本发明实施例提供一种页面生成方法、装置、电子设备及存储介质。
第一方面,本发明实施例提供一种页面生成方法,包括:
接收路由请求;其中,所述路由请求为从当前页面跳转到目标页面;
根据所述路由请求,同时启动目标页面初始化任务和目标页面的网络数据预加载任务,使得所述目标页面初始化任务和所述目标页面的网络数据预加载任务并行执行;
判断所述目标页面初始化任务是否完成;
若所述目标页面初始化任务完成,则判断所述网络数据预加载任务对应的网络数据是否预加载完成,若是,则将所述网络数据回调给所述目标页面,由所述目标页面根据所述网络数据进行页面渲染。
进一步地,所述方法还包括:
若所述网络数据预加载任务对应的网络数据没有预加载完成,则监听所述网络数据预加载任务,并在确定所述网络数据预加载任务对应的网络数据预加载完成后,将所述网络数据回调给所述目标页面,由所述目标页面根据所述网络数据进行页面渲染。
进一步地,所述方法还包括:
若所述目标页面初始化任务未完成,则监听所述目标页面初始化任务并在确定所述目标页面初始化任务完成后,判断所述网络数据预加载任务对应的网络数据是否预加载完成,若是,则将所述网络数据回调给所述目标页面,由所述目标页面根据所述网络数据进行页面渲染,否则监听所述网络数据预加载任务,并在确定所述网络数据预加载任务对应的网络数据预加载完成后,将所述网络数据回调给所述目标页面,由所述目标页面根据所述网络数据进行页面渲染。
进一步地,所述方法还包括:
根据所述路由请求,申请preloadid;
将所述preloadid添加到目标页面初始化任务和目标页面的网络数据预加载任务中;
若所述目标页面初始化任务完成,且所述网络数据预加载任务对应的网络数据没有预加载完成,则将所述目标页面初始化任务加入到添加所述preloadid的目标页面的网络数据预加载任务监听列表中,监听所述网络数据预加载任务,并在添加所述preloadid的目标页面的网络数据预加载任务对应的网络数据预加载完成后,将所述网络数据回调给所述目标页面,由所述目标页面根据所述网络数据进行页面渲染。
进一步地,所述方法还包括:
若所述目标页面初始化任务未完成,且所述网络数据预加载任务对应的网络数据预加载完成,则暂存所述网络数据,监听所述目标页面初始化任务。
第二方面,本发明实施例提供了一种页面生成装置,包括:
接收模块,用于接收路由请求;其中,所述路由请求为从当前页面跳转到目标页面;
启动任务模块,用于根据所述路由请求,同时启动目标页面初始化任务和目标页面的网络数据预加载任务,使得所述目标页面初始化任务和所述目标页面的网络数据预加载任务并行执行;
第一判断模块,用于判断所述目标页面初始化任务是否完成;
第二判断模块,用于若所述目标页面初始化任务完成,则判断所述网络数据预加载任务对应的网络数据是否预加载完成,若是,则将所述网络数据回调给所述目标页面,由所述目标页面根据所述网络数据进行页面渲染。
进一步地,所述装置还包括:
第一监听模块,用于若所述网络数据预加载任务对应的网络数据没有预加载完成,则监听所述网络数据预加载任务,并在确定所述网络数据预加载任务对应的网络数据预加载完成后,将所述网络数据回调给所述目标页面,由所述目标页面根据所述网络数据进行页面渲染。
进一步地,所述装置还包括:
第二监听模块,用于若所述目标页面初始化任务未完成,则监听所述目标页面初始化任务并在确定所述目标页面初始化任务完成后,判断所述网络数据预加载任务对应的网络数据是否预加载完成,若是,则将所述网络数据回调给所述目标页面,由所述目标页面根据所述网络数据进行页面渲染,否则监听所述网络数据预加载任务,并在确定所述网络数据预加载任务对应的网络数据预加载完成后,将所述网络数据回调给所述目标页面,由所述目标页面根据所述网络数据进行页面渲染。
第三方面,本发明实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上第一方面所述的页面生成方法的步骤。
第四方面,本发明实施例还提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上第一方面所述的页面生成方法的步骤。
由上述技术方案可知,本发明实施例提供的页面生成方法、装置、电子设备及存储介质,在接收路由请求后,根据路由请求同时启动目标页面初始化任务和目标页面的网络数据预加载任务,使得目标页面初始化任务和目标页面的网络数据预加载任务并行执行,从而能够减少目标页面的生成时间消耗,进而提升页面生成效率,又因为网络数据的回调必须在目标页面初始化任务完成后执行,所以判断目标页面初始化任务是否完成;若目标页面初始化任务完成,则判断网络数据预加载任务对应的网络数据是否预加载完成,若是,则将网络数据回调给目标页面,由目标页面根据网络数据进行页面渲染,可见本发明实施例通过管理好目标页面初始化任务和网络数据预加载任务的依赖顺序和状态,使得网络数据回调发生在目标页面初始化任务完成后,从而使得页面不会崩溃。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术提供的页面生成方法的耗时示意图;
图2为本发明一实施例提供的页面生成方法的耗时示意图;
图3为本发明一实施例提供的页面生成方法的流程示意图;
图4为本发明另一实施例提供的页面生成方法的执行流程图;
图5为本发明一实施例提供的页面生成方法的效果图;
图6为本发明一实施例提供的页面生成装置的结构示意图;
图7为本发明一实施例中电子设备的实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。在本实施例中,需要说明的是一个页面打开时有两个主要耗时的任务,一个为页面初始化任务,页面初始化任务包括加载布局文件、解析布局、创建ui元素对象等;一个为网络数据请求任务,网络数据请求任务包括通过接口请求获取服务端的数据到本地,然后渲染到页面的ui元素上。其中,网络数据请求任务是一个异步任务,在通过接口请求获取服务端的目标页面的网络数据到本地完成后会通过回调去通知ui元素进行数据渲染,但是如果ui元素还没创建完成,就回调通知ui进行数据渲染,就会导致页面崩溃。在本实施例中,需要说明的是app为了追求极致的体验,需要减少一个页面从打开到最终的展示所消耗的总时间,因此需要在现有框架下将页面初始化任务和网络数据请求任务改为并行执行,参见图2。下面将通过具体的实施例对本发明提供的页面生成方法进行详细解释和说明。
图3为本发明一实施例提供的页面生成方法的流程示意图;如图3所示,该方法包括:
步骤101:接收路由请求;其中,路由请求为从当前页面跳转到目标页面。
在本步骤中,举例来说,参见图4,路由中心接收一个路由请求,路由请求为从页面a(当前页面)跳转打开页面页面b(目标页面)。
步骤102:根据路由请求,同时启动目标页面初始化任务和目标页面的网络数据预加载任务,使得目标页面初始化任务和目标页面的网络数据预加载任务并行执行。
在本步骤中,需要说明的是,参见图4,路由中心接收到路由请求后,由路由中心根据对应的路由请求,同时启动目标页面初始化任务和目标页面的网络数据预加载任务,即在要执行目标页面初始化任务同时启动目标页面的网络数据预加载任务,如在路由中心通过路由拦截器来启动目标页面的网络数据预加载任务,请求目标页面的网络数据,使得目标页面初始化任务和目标页面的网络数据预加载任务并行执行。
步骤103:判断目标页面初始化任务是否完成。
在本步骤中,可以通过监听目标页面初始化任务,即监听加载布局文件、解析布局文件、创建ui元素对象等任务是否完成来判断目标页面初始化任务是否完成。需要说明的是,目标页面初始化任务是由路由中心启动的,在路由中心发送的路由请求携带的参数中携带参数加载布局文件、参数解析布局文件等。
步骤104:若目标页面初始化任务完成,则判断网络数据预加载任务对应的网络数据是否预加载完成,若是,则将网络数据回调给目标页面,由目标页面根据网络数据进行页面渲染。
在本步骤中,需要说明的是,由于如果目标页面初始化任务中ui元素还没创建完成,就回调通知ui进行数据渲染,就会导致页面崩溃。因此,需要管理好目标页面初始化任务和网络数据预加载任务的依赖顺序和状态,使得网络数据回调发生在目标页面初始化任务完成后,从而使得页面不会崩溃。
采用本发明实施例提供的页面生成方法,对于一个比较复杂的页面,收益如图5所示,图5中横坐标为测试的次数、纵坐标为耗费的时间,经对比可见,当开启预加载任务时,相对于不开启预加载任务所耗费的时间明显降低。
由上面技术方案可知,本发明实施例提供的页面生成方法,在接收路由请求后,根据路由请求同时启动目标页面初始化任务和目标页面的网络数据预加载任务,使得目标页面初始化任务和目标页面的网络数据预加载任务并行执行,通过启动目标页面的网络数据预加载任务使得“网络数据请求任务”提前进行,从而提前将服务端的数据到本地,从而能够减少目标页面的生成时间消耗,进而提升页面生成效率,又因为网络数据的回调必须在目标页面初始化任务完成后执行,所以判断目标页面初始化任务是否完成;若目标页面初始化任务完成,则判断网络数据预加载任务对应的网络数据是否预加载完成,若是,则将网络数据回调给目标页面,由目标页面根据网络数据进行页面渲染,可见本发明实施例通过管理好目标页面初始化任务和网络数据预加载任务的依赖顺序和状态,使得网络数据回调发生在目标页面初始化任务完成后,从而使得页面不会崩溃。
在上述实施例的基础上,在本实施例中,还包括:
若网络数据预加载任务对应的网络数据没有预加载完成,则监听网络数据预加载任务,并在确定网络数据预加载任务对应的网络数据预加载完成后,将网络数据回调给目标页面,由目标页面根据网络数据进行页面渲染。
在本实施例中,举例来说,参见图4,当目标页面初始化任务完成之后,发起对应的业务数据发起请求,当这个请求到达网络库的预加载请求拦截器的时候,这个拦截器会终止继续请求后端服务,然后去预加载中心去查询是不是有已经预加载好的网络数据,若网络数据预加载任务对应的网络数据没有预加载完成,则对网络数据预加载任务进行监听,在确定网络数据预加载任务对应的网络数据预加载完成后,直接向目标页面回调对应的网络数据,目标页面则拿到对应的网络数据进行页面渲染。
由上面技术方案可知,本发明实施例提供的页面生成方法,通过管理好目标页面初始化任务和网络数据预加载任务的依赖顺序和状态,使得网络数据回调发生在目标页面初始化任务完成后,从而使得页面不会崩溃。
在上述实施例的基础上,在本实施例中,还包括:
若目标页面初始化任务未完成,则监听目标页面初始化任务并在确定目标页面初始化任务完成后,判断网络数据预加载任务对应的网络数据是否预加载完成,若是,则将网络数据回调给目标页面,由目标页面根据网络数据进行页面渲染,否则监听网络数据预加载任务,并在确定网络数据预加载任务对应的网络数据预加载完成后,将网络数据回调给目标页面,由目标页面根据网络数据进行页面渲染。
在本实施例中,举例来说,参见图4,可以为通过从预加载中心获取监听列表,监听目标页面初始化任务。并在确定目标页面初始化任务完成后,判断网络数据预加载任务对应的网络数据是否预加载完成,若是,则将网络数据回调给目标页面,由目标页面根据网络数据进行页面渲染,否则监听网络数据预加载任务,并在确定网络数据预加载任务对应的网络数据预加载完成后,将网络数据回调给目标页面,由目标页面根据网络数据进行页面渲染。
由上面技术方案可知,本发明实施例提供的页面生成方法,通过管理好目标页面初始化任务和网络数据预加载任务的依赖顺序和状态,使得网络数据回调发生在目标页面初始化任务完成后,从而使得页面不会崩溃。
在上述实施例的基础上,在本实施例中,还包括:
根据路由请求,申请preloadid;
将preloadid添加到目标页面初始化任务和目标页面的网络数据预加载任务中;
若目标页面初始化任务完成,且网络数据预加载任务对应的网络数据没有预加载完成,则将目标页面初始化任务加入到添加preloadid的目标页面的网络数据预加载任务监听列表中,监听网络数据预加载任务,并在添加preloadid的目标页面的网络数据预加载任务对应的网络数据预加载完成后,将网络数据回调给目标页面,由目标页面根据网络数据进行页面渲染。
在本实施例中,需要说明的是,参见图4,触发路由请求,路由中心的预加载路由拦截器向预加载中心申请一个自增的preloadid,使得路由请求在初始的参数中,增加了参数preloadid。又由于目标页面初始化任务和网络数据预加载任务均是路由中心启动的,即将preloadid添加到目标页面初始化任务和目标页面的网络数据预加载任务中,因此在执行目标页面初始化任务和网络数据预加载任务时均携带参数preloadid。
在本实施例中,举例来说,目标页面初始化任务完成后,发起对应的业务数据发起请求,当这个请求到达网络库的预加载请求拦截器的时候,这个拦截器会终止继续请求后端服务,然后通过preloadid去预加载中心查询是否有已经预加载好的数据。如果有已经预加载好的数据,则将网络数据回调给目标页面,由目标页面根据网络数据进行页面渲染。若网络数据预加载任务对应的网络数据没有预加载完成,则将目标页面初始化任务加入到添加preloadid的目标页面的网络数据预加载任务监听列表中,等待添加preloadid的目标页面的网络数据预加载任务对应的网络数据预加载完成后,通过preloadid作为唯一标识,获取网络数据,将网络数据回调给目标页面,由目标页面根据网络数据进行页面渲染。
由上面技术方案可知,本发明实施例提供的页面生成方法,由于目标页面初始化任务和目标页面的网络数据预加载任务是互相解耦的,因此通过参数preloadid,将目标页面初始化任务和目标页面的网络数据预加载任务进行关联,从而使得能够准确获取到目标页面的网络数据。
在上述实施例的基础上,在本实施例中,还包括:
若目标页面初始化任务未完成,且网络数据预加载任务对应的网络数据预加载完成,则暂存网络数据,监听目标页面初始化任务。
在本实施例中,在网络数据预加载任务对应的网络数据预加载完成,且目标页面初始化任务未完成时,将网络数据暂存在预加载中心,监听目标页面初始化任务,等待目标页面初始化任务完成后,将网络数据回调给目标页面,由目标页面根据网络数据进行页面渲染。
为了更好的理解本发明,下面结合实施例进一步阐述本发明的内容,但本发明不仅仅局限于下面实施例。
如图4所示,包含路由中心、路由拦截器、预加载路由拦截器、拦截器、预加载网络请求拦截器、预加载网络响应拦截器和预加载中心多个模块。
下面对各模块进行解释:
路由中心:指app上页面跳转页面的管理路由中心模块。
路由拦截器:路由中心在执行路由请求的时候,会依次执行一组拦截器的拦截方法,在这些拦截器中可以对所有跳转做一些公共策略。
预加载路由拦截器:是一组路有拦截器中的特定一个,专门用于处理预加载任务;
拦截器:网络库在执行网络数据请求的时候,会依次执行一组拦截器的拦截方法,在这些拦截器中可以做一些公共策略,这一组拦截器按照时机有可以分成两种,第一种是发生在与后台服务器通信之前,叫网络请求拦截器;第二种是发生在与后台服务器通信之后,这时app已经拿到了服务器返回的数据,叫网络响应拦截器。
预加载网络请求拦截器:即上面的网络请求拦截器中的特定一个,专门用于处理预加载任务。
预加载网络响应拦截器:即上面的网络响应拦截器中的特定一个,专门用于处理预加载任务。
预加载中心:一个独立的模块,预加载数据的存储、分发模块。
基于上述内容,一、路由中心收到一个路由请求:从页面a要跳转打开页面b。
二、路由中心的预加载路由拦截器,向预加载中心申请一个自增的preloadid。
三、启动目标页面的网络数据预加载任务,携带着preloadid;同时启动目标页面初始化任务,携带着preloadid;同时目标页面初始化任务和目标页面的网络数据预加载任务并行执行。
四、下述内容各事件不分时间先后,即发生的时序不固定:
ⅰ、(4a)网络库里的预加载网络响应拦截器,在收到服务器的数据之后,从预加载中心获取对当前preloadid的监听者列表。
ⅱ、(5a)得到监听者列表之后,检查监听者列表是否“不为空”?
①是(即不为空),表示页面b已经完成目标页面初始化任务,并且对这个preloadid代表的数据预加载任务进行了监听,这个时候直接向监听者回调数据,页面b则拿到数据进行ui渲染;
②否(即为空),表示页面b还没有完成目标页面初始化任务,还没开始对这个预加载数据进行监听,这个时候,将这份数据先暂存到预加载中心,以preloadid为唯一标识。
ⅲ、(4b)当页面b完成初始化之后,发起业务数据的加载请求,当这个请求到达网络库的预加载请求拦截器的时候,这个拦截器会终止继续请求后端服务,然后拿着这个preloadid去预加载中心去查询是不是已经有对应的预加载好的数据:
①有,说明之前预加载任务已经完成了,把数据暂存好了,之后网络库直接回调给页面b,进行渲染。
②没有,说明预加载任务还没有完成,这个时候同样不再发一个请求到后端,而是把页面b的初始化任务加到preloadid对应的预加载任务的监听者列表中,等待预加载任务完成,当预加载任务完成后,则又走到上面的5a-①流程中了。
图6为本发明一实施例提供的页面生成装置的结构示意图,如图6所示,该装置包括:接收模块201、启动任务模块202、第一判断模块203和第二判断模块204,其中:
其中,接收模块201,用于接收路由请求;其中,路由请求为从当前页面跳转到目标页面;
启动任务模块202,用于根据路由请求,同时启动目标页面初始化任务和目标页面的网络数据预加载任务,使得目标页面初始化任务和目标页面的网络数据预加载任务并行执行;
第一判断模块203,用于判断目标页面初始化任务是否完成;
第二判断模块204,用于若目标页面初始化任务完成,则判断网络数据预加载任务对应的网络数据是否预加载完成,若是,则将网络数据回调给目标页面,由目标页面根据网络数据进行页面渲染。
进一步地,装置还包括:
第一监听模块,用于若网络数据预加载任务对应的网络数据没有预加载完成,则监听网络数据预加载任务,并在确定网络数据预加载任务对应的网络数据预加载完成后,将网络数据回调给目标页面,由目标页面根据网络数据进行页面渲染。
进一步地,装置还包括:
第二监听模块,用于若目标页面初始化任务未完成,则监听目标页面初始化任务并在确定目标页面初始化任务完成后,判断网络数据预加载任务对应的网络数据是否预加载完成,若是,则将网络数据回调给目标页面,由目标页面根据网络数据进行页面渲染,否则监听网络数据预加载任务,并在确定网络数据预加载任务对应的网络数据预加载完成后,将网络数据回调给目标页面,由目标页面根据网络数据进行页面渲染。
进一步地,装置还包括:
申请模块,用于根据路由请求,申请preloadid;
添加模块,用于将preloadid添加到目标页面初始化任务和目标页面的网络数据预加载任务中;
第三监听模块,用于若所述目标页面初始化任务完成,且所述网络数据预加载任务对应的网络数据没有预加载完成,则将所述目标页面初始化任务加入到添加所述preloadid的目标页面的网络数据预加载任务监听列表中,监听所述网络数据预加载任务,并在添加所述preloadid的目标页面的网络数据预加载任务对应的网络数据预加载完成后,将所述网络数据回调给所述目标页面,由所述目标页面根据所述网络数据进行页面渲染。
进一步地,装置还包括:
暂存模块,用于若所述目标页面初始化任务未完成,且所述网络数据预加载任务对应的网络数据预加载完成,则暂存所述网络数据,监听所述目标页面初始化任务。
本发明实施例提供的页面生成装置具体可以用于执行上述实施例的页面生成方法,其技术原理和有益效果类似,具体可参见上述实施例,此处不再赘述。
基于相同的发明构思,本发明实施例提供一种电子设备,参见图7,电子设备具体包括如下内容:处理器301、存储器302、通信接口303和通信总线304;
其中,处理器301、通信接口303、存储器302通过通信总线304完成相互间的通信;通信接口303用于实现各建模软件及智能制造装备模块库等相关设备之间的信息传输;处理器301用于调用存储器302中的计算机程序,处理器执行计算机程序时实现上述各方法实施例所提供的方法,例如,处理器执行计算机程序时实现下述步骤:接收路由请求;其中,路由请求为从当前页面跳转到目标页面;根据路由请求,同时启动目标页面初始化任务和目标页面的网络数据预加载任务,使得目标页面初始化任务和目标页面的网络数据预加载任务并行执行;判断目标页面初始化任务是否完成;若目标页面初始化任务完成,则判断网络数据预加载任务对应的网络数据是否预加载完成,若是,则将网络数据回调给目标页面,由目标页面根据网络数据进行页面渲染。
基于相同的发明构思,本发明又一实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法实施例提供的方法,例如,接收路由请求;其中,路由请求为从当前页面跳转到目标页面;根据路由请求,同时启动目标页面初始化任务和目标页面的网络数据预加载任务,使得目标页面初始化任务和目标页面的网络数据预加载任务并行执行;判断目标页面初始化任务是否完成;若目标页面初始化任务完成,则判断网络数据预加载任务对应的网络数据是否预加载完成,若是,则将网络数据回调给目标页面,由目标页面根据网络数据进行页面渲染。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分的方法。
此外,在本发明中,诸如“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
此外,在本发明中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
此外,在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
1.一种页面生成方法,其特征在于,包括:
接收路由请求;其中,所述路由请求为从当前页面跳转到目标页面;
根据所述路由请求,同时启动目标页面初始化任务和目标页面的网络数据预加载任务,使得所述目标页面初始化任务和所述目标页面的网络数据预加载任务并行执行;
判断所述目标页面初始化任务是否完成;
若所述目标页面初始化任务完成,则判断所述网络数据预加载任务对应的网络数据是否预加载完成,若是,则将所述网络数据回调给所述目标页面,由所述目标页面根据所述网络数据进行页面渲染。
2.根据权利要求1所述的页面生成方法,其特征在于,所述方法还包括:
若所述网络数据预加载任务对应的网络数据没有预加载完成,则监听所述网络数据预加载任务,并在确定所述网络数据预加载任务对应的网络数据预加载完成后,将所述网络数据回调给所述目标页面,由所述目标页面根据所述网络数据进行页面渲染。
3.根据权利要求1所述的页面生成方法,其特征在于,所述方法还包括:
若所述目标页面初始化任务未完成,则监听所述目标页面初始化任务并在确定所述目标页面初始化任务完成后,判断所述网络数据预加载任务对应的网络数据是否预加载完成,若是,则将所述网络数据回调给所述目标页面,由所述目标页面根据所述网络数据进行页面渲染,否则监听所述网络数据预加载任务,并在确定所述网络数据预加载任务对应的网络数据预加载完成后,将所述网络数据回调给所述目标页面,由所述目标页面根据所述网络数据进行页面渲染。
4.根据权利要求1~3任一项所述的页面生成方法,其特征在于,所述方法还包括:
根据所述路由请求,申请preloadid;
将所述preloadid添加到目标页面初始化任务和目标页面的网络数据预加载任务中;
若所述目标页面初始化任务完成,且所述网络数据预加载任务对应的网络数据没有预加载完成,则将所述目标页面初始化任务加入到添加所述preloadid的目标页面的网络数据预加载任务监听列表中,监听所述网络数据预加载任务,并在添加所述preloadid的目标页面的网络数据预加载任务对应的网络数据预加载完成后,将所述网络数据回调给所述目标页面,由所述目标页面根据所述网络数据进行页面渲染。
5.根据权利要求1所述的页面生成方法,其特征在于,所述方法还包括:
若所述目标页面初始化任务未完成,且所述网络数据预加载任务对应的网络数据预加载完成,则暂存所述网络数据,监听所述目标页面初始化任务。
6.一种页面生成装置,其特征在于,包括:
接收模块,用于接收路由请求;其中,所述路由请求为从当前页面跳转到目标页面;
启动任务模块,用于根据所述路由请求,同时启动目标页面初始化任务和目标页面的网络数据预加载任务,使得所述目标页面初始化任务和所述目标页面的网络数据预加载任务并行执行;
第一判断模块,用于判断所述目标页面初始化任务是否完成;
第二判断模块,用于若所述目标页面初始化任务完成,则判断所述网络数据预加载任务对应的网络数据是否预加载完成,若是,则将所述网络数据回调给所述目标页面,由所述目标页面根据所述网络数据进行页面渲染。
7.根据权利要求6所述的页面生成装置,其特征在于,所述装置还包括:
第一监听模块,用于若所述网络数据预加载任务对应的网络数据没有预加载完成,则监听所述网络数据预加载任务,并在确定所述网络数据预加载任务对应的网络数据预加载完成后,将所述网络数据回调给所述目标页面,由所述目标页面根据所述网络数据进行页面渲染。
8.根据权利要求6所述的页面生成装置,其特征在于,所述装置还包括:
第二监听模块,用于若所述目标页面初始化任务未完成,则监听所述目标页面初始化任务并在确定所述目标页面初始化任务完成后,判断所述网络数据预加载任务对应的网络数据是否预加载完成,若是,则将所述网络数据回调给所述目标页面,由所述目标页面根据所述网络数据进行页面渲染,否则监听所述网络数据预加载任务,并在确定所述网络数据预加载任务对应的网络数据预加载完成后,将所述网络数据回调给所述目标页面,由所述目标页面根据所述网络数据进行页面渲染。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至5任一项所述的页面生成方法的步骤。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至5任一项所述的页面生成方法的步骤。
技术总结