掌桥专利:专业的专利平台
掌桥专利
首页

一种资源请求的处理方法和装置

文献发布时间:2024-04-18 20:01:23


一种资源请求的处理方法和装置

技术领域

本申请属于移动互联技术领域,尤其涉及一种资源请求的处理方法和装置。

背景技术

对于组织机构、公司、集团等所使用的PC客户端平台而言,集成有多个办公系统,在用户使用的过程中,经常会出现由于网页中包含的资源文件较大而导致的页面加载时间过长的问题。

为了解决这种问题,现有的处理方式一般是将所有访问过的文件都进行缓存,从而来提升资源加载的效率。然而,这种无差别的统一缓存方式,会导致缓存所需的资源过多,且无法达到对大文件的有效缓存和处理。

针对上述问题,目前尚未提出有效的解决方案。

发明内容

本申请目的在于提供一种资源请求的处理方法和装置,以在减少缓存资源浪费的情况下,提升资源访问效率。

本申请提供一种资源请求的处理方法和装置是这样实现的:

一种资源请求的处理方法,所述方法包括:

在客户端侧拦截资源请求;

根据预先设置的缓存策略,确定所述资源请求所请求的资源是否为需缓存的资源;

在确定所请求的资源为需缓存的资源的情况下,确定缓存记录表中是否记录有所请求的资源对应的缓存记录,在确定缓存记录表中记录有所请求的资源对应的缓存记录的情况下,将所述资源请求重定向到客户端的本地磁盘,以获取资源;在确定缓存记录表中未记录所请求的资源对应的缓存记录的情况下,通过回调方法放行所述资源请求,以访问远程服务器获取资源;

在确定所请求的资源非需缓存的资源的情况下,通过回调方法放行所述资源请求,以访问远程服务器获取资源。

在一个实施方式中,在确定缓存记录表中记录有所请求的资源对应的缓存记录的情况下,将所述资源请求重定向到客户端的本地磁盘,以获取资源,包括:

在确定缓存记录表中记录有所请求的资源对应的缓存记录的情况下,根据所述资源请求所请求资源的地址和所述缓存记录表,确定客户端本地磁盘是否存储有该资源;

在确定客户端本地磁盘存储有该资源的情况下,将所述资源请求直接重定向到客户端的本地磁盘,以获取资源;

在确定客户端本地磁盘未存储该资源的情况下,从远程服务器请求到该资源,并存储在本地磁盘中,再将所述资源请求直接重定向到客户端的本地磁盘,以获取资源。

在一个实施方式中,根据预先设置的缓存策略,确定所述资源请求所请求的资源是否为需缓存的资源,包括:

从所述资源请求中提取所请求的资源的资源类型和资源大小;

根据提取的资源类型和资源大小,与所述缓存策略进行比对,以确定所述资源请求所请求的资源是否为需缓存的资源。

在一个实施方式中,在确定缓存记录表中未记录所请求的资源对应的缓存记录的情况下,通过回调方法放行所述资源请求,以访问远程服务器获取资源之后,还包括:

在所述缓存记录表中,增加所请求的资源对应的缓存记录;

将从远程服务器获取的资源,存储在客户端的本地磁盘中。

在一个实施方式中,在确定缓存记录表中记录有所请求的资源对应的缓存记录的情况下,将所述资源请求重定向到客户端的本地磁盘,以获取资源之后,还包括:

将所述缓存记录表中该资源对应的缓存记录中的最近访问时间字段的取值,修改为本次访问时间;

相应的,所述方法还包括:

对所述缓存记录表中的缓存记录,逐条进行检测;

删除最近访问时间字段的取值超出预设时间长度的记录,并删除本地磁盘中记录的对应的资源文件。

在一个实施方式中,在客户端侧拦截资源请求之前,还包括:

在客户端的本地磁盘中划分出存储区域作为缓存存储区,并设置存放目录;

在存放目录下创建缓存记录表;

通过所述缓存记录表,记录缓存资源的信息字段,其中,信息字段包括以下至少之一:资源请求地址、文件版本、文件名、文件类型、缓存文件路径、记录创建时间、最近访问时间。

一种资源请求的处理装置,包括:

拦截模块,用于在客户端侧拦截资源请求;

确定模块,用于根据预先设置的缓存策略,确定所述资源请求所请求的资源是否为需缓存的资源;

处理模块,用于在确定所请求的资源为需缓存的资源的情况下,确定缓存记录表中是否记录有所请求的资源对应的缓存记录,在确定缓存记录表中记录有所请求的资源对应的缓存记录的情况下,将所述资源请求重定向到客户端的本地磁盘,以获取资源;在确定缓存记录表中未记录所请求的资源对应的缓存记录的情况下,通过回调方法放行所述资源请求,以访问远程服务器获取资源;

访问模块,用于在确定所请求的资源非需缓存的资源的情况下,通过回调方法放行所述资源请求,以访问远程服务器获取资源。

一种电子设备,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现上述方法的步骤。

一种计算机可读存储介质,其上存储有计算机程序/指令,该计算机程序/指令被处理器执行时实现上述方法的步骤。

一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现上述方法的步骤。

本申请提供的资源请求的处理方法,在存在资源访问请求的情况下,进行拦截和判断,根据预先设置的缓存策略,确定资源请求所请求的资源是否为需缓存的资源,如果不是需缓存的资源,就通过回调方法放行所述资源请求,以访问远程服务器获取资源,如果是需缓存的资源,那么再通过缓存记录表来进一步确定是从本地磁盘获取资源还是从远程服务器获取。即,对资源请求所请求的资源进行了分类判断,这样可以解决现有的所有资源都进行缓存而导致的访问效率低下、存储资源占用率高的问题,达到了有针对性地提升访问效率的情况下,减少对存储资源占用的技术效果。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本申请提供的资源请求的处理方法一种实施例的方法流程图;

图2是本申请提供的缓存处理方法的方法流程图;

图3是本申请提供的一种资源请求的处理方法的电子设备的硬件结构框图;

图4是本申请提供的资源请求的处理装置一种实施例的模块结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。

针对现有的集成有多个相关应用的客户端,为了实现被访问资源的快速访问,提供了一种资源请求的处理方法,通过设置缓存策略和缓存记录表,来确定每个请求是从服务器获取资源还是从客户端的本地磁盘中获取资源,即,基于可配置的缓存策略,实现对不同类型、不同大小资源的缓存方式的设置,从而可以满足快速访问的需求,又可以减少对存储资源的占用。

图1是本申请提供的资源请求的处理方法一种实施例的方法流程图。虽然本申请提供了如下述实施例或附图所示的方法操作步骤或装置结构,但基于常规或者无需创造性的劳动在所述方法或装置中可以包括更多或者更少的操作步骤或模块单元。在逻辑性上不存在必要因果关系的步骤或结构中,这些步骤的执行顺序或装置的模块结构不限于本申请实施例描述及附图所示的执行顺序或模块结构。所述的方法或模块结构的在实际中的装置或终端产品应用时,可以按照实施例或者附图所示的方法或模块结构连接进行顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至分布式处理环境)。

具体的,如图1所示,上述的资源请求的处理方法可以包括如下步骤:

步骤101:在客户端侧拦截资源请求;

步骤102:根据预先设置的缓存策略,确定所述资源请求所请求的资源是否为需缓存的资源;

其中,资源请求所请求的资源可以是:HTML、CSS、图像、字体文件等,对于这些资源可以根据可配置的缓存策略进行设置,来确定哪些资源在本地进行缓存,哪些不进行缓存。例如,可以设置:字体文件,如果大于500kb则是需要缓存的文件,例如,设置不变化的网页页面,是需要缓存的文件,也可以设置一周变化依次的网页页面是需要缓存的文件,并一周对这些缓存进行更新一次。即,可以根据实际的需求,对缓存策略进行设置。例如,希望大的文件数据,可以尽快被读取,避免访问页面卡顿,那么可以设置大(例如:大于1M)的资源就进行缓存。具体的如何设置策略,可以根据实际需求设定,本申请对此不做限定。

通过将需要缓存的资源存储在客户端的本地磁盘上,当用户再次访问相同的资源时,可以从客户段本地加载资源,而不必重新从服务器获取,从而有效提升网页速度。通过灵活的缓存策略设置,可以根据需求和情况来进行缓存的有效设定,兼顾访问效率和存储资源占用。

步骤103:在确定所请求的资源为需缓存的资源的情况下,确定缓存记录表中是否记录有所请求的资源对应的缓存记录,在确定缓存记录表中记录有所请求的资源对应的缓存记录的情况下,将所述资源请求重定向到客户端的本地磁盘,以获取资源;在确定缓存记录表中未记录所请求的资源对应的缓存记录的情况下,通过回调方法放行所述资源请求,以访问远程服务器获取资源;

即,如果确定所请求的资源是需要缓存的资源,那么就结合缓存记录表进行进一步确认,通过缓存记录表的设置,不同的应用都可以访问这个表,这样多个应用可以共用一套缓存文件,避免了多次缓存同一资源的情况。通过这种方式,使得可以在客户端中实施一种统一的资源缓存方案,不依赖于第三方应用的改动,就可以实现资源的统一缓存,有效提升了用户体验。

步骤104:在确定所请求的资源非需缓存的资源的情况下,通过回调方法放行所述资源请求,以访问远程服务器获取资源。

在上例中,在存在资源访问请求的情况下,进行拦截和判断,根据预先设置的缓存策略,确定资源请求所请求的资源是否为需缓存的资源,如果不是需缓存的资源,就通过回调方法放行所述资源请求,以访问远程服务器获取资源,如果是需缓存的资源,那么再通过缓存记录表来进一步确定是从本地磁盘获取资源还是从远程服务器获取。即,对资源请求所请求的资源进行了分类判断,这样可以解决现有的所有资源都进行缓存而导致的访问效率低下、存储资源占用率高的问题,达到了有针对性地提升访问效率的情况下,减少对存储资源占用的技术效果。

进一步的,在确定缓存记录表中记录有所请求的资源对应的缓存记录的情况下,将所述资源请求重定向到客户端的本地磁盘,以获取资源的时候,可以进行具体的判断和操作,例如:在确定缓存记录表中记录有所请求的资源对应的缓存记录的情况下,根据所述资源请求所请求资源的地址和所述缓存记录表,确定客户端本地磁盘是否存储有该资源;在确定客户端本地磁盘存储有该资源的情况下,将所述资源请求直接重定向到客户端的本地磁盘,以获取资源;在确定客户端本地磁盘未存储该资源的情况下,从远程服务器请求到该资源,并存储在本地磁盘中,再将所述资源请求直接重定向到客户端的本地磁盘,以获取资源。

例如,在实现的时候,可以使用Electron框架提供的事件onBeforeRequest,对请求进行监听,根据请求的访问地址和资源类型来判断请求是否可能是已缓存资源,如果确定不可能为缓存资源,则使用事件提供的回调方法callback({cancel:false}),放行请求,继续访问远程服务器资源。如果确定为可能的缓存资源,则根据请求的访问地址在cache_record表中搜寻对应的缓存记录,如有没有对应的缓存记录,则同样使用回调方法callback放行请求,在请求响应成功后,在onHeadersReceived事件中对该资源进行缓存,并在请求文件中记录;如果有对应的缓存记录,则通过资源文件请求地址,从缓存记录表cached_record中查找缓存记录,如果本地磁盘存在该记录,则直接重定向到该资源文件;如果本地磁盘中未缓存该资源,则从远程服务器请求到该资源存储到本地磁盘中,再重定向到本地缓存的资源文件。

在实现的时候,根据预先设置的缓存策略,确定所述资源请求所请求的资源是否为需缓存的资源,可以包括:从所述资源请求中提取所请求的资源的资源类型和资源大小;根据提取的资源类型和资源大小,与所述缓存策略进行比对,以确定所述资源请求所请求的资源是否为需缓存的资源。即,通过所请求资源的类型和大小来确定资源是否为需缓存的资源。

为了对缓存记录表和本地磁盘中的资源进行及时更新和丰富,在确定缓存记录表中未记录所请求的资源对应的缓存记录的情况下,通过回调方法放行所述资源请求,以访问远程服务器获取资源之后,还可以在所述缓存记录表中,增加所请求的资源对应的缓存记录;将从远程服务器获取的资源,存储在客户端的本地磁盘中。

考虑到对于在本地存储的缓存资源而言,是需要及时清理的,否则会造成存储资源的浪费,为此,在确定缓存记录表中记录有所请求的资源对应的缓存记录的情况下,将所述资源请求重定向到客户端的本地磁盘,以获取资源之后,还可以将所述缓存记录表中该资源对应的缓存记录中的最近访问时间字段的取值,修改为本次访问时间;相应的,可以对所述缓存记录表中的缓存记录,逐条进行检测;删除最近访问时间字段的取值超出预设时间长度的记录,并删除本地磁盘中记录的对应的资源文件。例如,如果最后访问时间字段表明已经过去一个月了,那么这条记录和对应的资源文件,都可以被删除。

对于上述的缓存记录表而言,可以是在客户端侧拦截资源请求之前建立的,具体的,可以在客户端的本地磁盘中划分出存储区域作为缓存存储区,并设置存放目录;在存放目录下创建缓存记录表;通过所述缓存记录表,记录缓存资源的信息字段,其中,信息字段包括以下至少之一:资源请求地址、文件版本、文件名、文件类型、缓存文件路径、记录创建时间、最近访问时间。

下面结合一个具体实施例对上述方法进行说明,然而,值得注意的是,该具体实施例仅是为了更好地说明本申请,并不构成对本申请的不当限定。

在本例中,采用Eectron框架在客户端独立实现资源缓存工作,以降低对服务端的依赖,实现缓存功能的自主可控。进一步的,结合缓存策略配置系统,实现缓存资源条件的自主可配,增加资源缓存功能的灵活度。

具体的,为了在客户端独立实现资源的缓存,在本例中引入了Electron框架,具体的通过BrowserWindow类,创建窗口用于加载页面内容;WebRequest类,用于在一个请求的不同生命周期阶段进行拦截,截取、修改其内容;Protocol模块,用于在拦截请求后,将资源重定向到用户本地缓存资源。还可以引入Node,其中,Node包括:request包,用于实现http请求,请求远程资源到本地;fs,操作文件系统,创建文件和文件夹,读写文件。

在实现的时候,在Electron框架中使用浏览器组件访问网页,在页面请求发起时,根据设置好的资源缓存条件进行检测判断。在初次请求到符合条件的资源时,将远程资源文件下载并存储到客户端本地,并将请求及文件信息存入本地文件。在后续监听到同样资源的请求时,拦截请求,用自定义协议将请求重定向到本地资源文件上,完成资源的加载。

在自动缓存资源的基础上,客户端可以定期检查缓存文件的使用情况,对长期未使用的缓存文件进行清理,减少对用户存储空间的占用。同时,还可以提供缓存清除功能,由用户自行清理应用缓存。

即,在客户端的本地进行文件缓存,客户端的本地缓存的内容可以是用户已经访问过的资源(例如:HTML、CSS、图像、字体文件等),将这些资源存储在客户端本地的内存或硬盘上。当用户通过之前的应用或者是其它的应用再次访问相同的页面时,浏览器可以从客户端的本地加载资源,而不必重新从服务器获取,从而显著提高了网页的加载速度。

在本例中提供了一种数据处理方法,可以包括:

1)页面在Electron框架中的访问:

创建窗口容器:在Electron应用中,通过框架提供的BrowserWindow类创建窗口以加载页面内容。具体的,可以通过BrowserWindow类提供的各种属性来自定义窗口的大小、背景色、是否可调整、是否可移动等各种外观和行为。

获取窗口session属性:在窗口创建完成后,获取窗口实例webContent对象的session属性,以便在窗口中设置webRequest监听器,通过webRequest监听器监听请求的各个生命周期,以对页面的会话和缓存进行管理。

2)资源缓存条件的配置:

配合资源缓存配置系统来配置资源缓存策略,其中,资源缓存策略可以包括:缓存策略名称、资源版本(如果版本不一致则需要重新请求最新资源)、资源地址URL(全匹配,正则匹配等)、资源大小控制(根据资源大小范围缓存)、策略生效时间范围(根据策略时间进行缓存)、策略生效范围、策略启停状态等。

3)资源缓存条件的检测:

获取所有的资源请求信息:使用窗口实例session属性的webRequest模块提供的onBeforeRequest事件和onHeadersReceived事件,监听在请求发生和接收到HTTP响应头(headers)后触发的事件。在事件中可以获取到请求的详细信息,例如:请求url、资源类型、资源大小等。

其中,检测资源类型和大小,可以是在监听函数内部,通过请求地址url分析出资源类型,通过请求响应头responseHeaders的‘content-length’字段获得资源大小,通过这两个字段与资源缓存策略可以判断出资源是否需要缓存。

在实现的时候,可以拦截所有的资源请求,具体的,可以在onBeforeRequest和onHeadersReceived监听事件中,拦截所有的请求。对于不满足缓存策略的请求,直接放行,以从远程服务器中获取资源;对于满足缓存策略的请求进行拦截,重定向到本地磁盘的缓存文件。

4)资源的下载与存储:

创建缓存文件的存放目录:使用node的fs模块及Electron框架提供的app.getPath('userData')方法,获取到客户端程序配置文件的文件夹路径,在目录下创建cached-resources文件夹,如果文件夹已存在,则不再重新创建。

下载并保存资源文件到指定目录:在onHeadersReceived事件中,如果判断资源需要缓存,则使用node的request模块请求资源,将请求结果通过fs模块的createWriteStream方法写入到目标目录下,并将文件名命名为“时间戳+文件名+文件版本+文件后缀”。

缓存信息的记录:在缓存文件的存放目录cached-data下创建数据库表cached_record,通过该数据库表记录资源缓存文件的信息字段,其中,这些信息字段包括:资源文件请求地址、文件版本、文件名、文件类型、缓存文件路径、创建时间和最近访问时间。当资源文件缓存完毕后,在cached_record表中,通过资源文件请求地址查找是否存在该记录。如果不存在,则新增一条该缓存记录,如果存在,则更新该缓存记录。

5)资源重定向:

监听请求的发生:使用Electron框架提供的事件onBeforeRequest,对请求进行监听,根据请求的url和资源类型来判断请求是否可能是已缓存资源,如果确定不可能为缓存资源,则使用事件提供的回调方法callback({cancel:false}),放行请求,继续访问远程服务器资源。

判断资源是否在本地有缓存,可以是根据请求url在cache_record表中搜寻对应的缓存记录,如有没有对应的缓存记录,则同样使用回调方法callback放行请求,在请求响应成功后,在onHeadersReceived事件中对该资源进行缓存,并在请求文件中记录。

重定向请求到本地资源:通过资源文件请求地址,从缓存记录表cached_record中查找缓存记录,如果本地磁盘存在该记录,则直接重定向到该资源文件;如果本地磁盘中未缓存该资源,则从远程服务器请求到该资源存储到本地磁盘中,再重定向到本地缓存的资源文件。使用Electron框架提供的protocol模块的registerFileProtocol方法创建自定义协议xmFile,协议用于加载本地资源。通过回调方法callback中提供的redirectURL参数,配合自定义协议xmFile,将请求重定向到本地资源上,不再请求远程资源。

更新缓存记录文件:将请求重定向到本地资源前,更新cache_record表中对应缓存记录的“最近访问时间”字段,便于后续根据记录的最近访问时间清理缓存文件。

6)缓存的检测与清理:

根据缓存记录文件cache_record表,检查每一个缓存记录的“最近访问时间”。当“最近访问时间”为一个月之前,通过记录的文件路径,使用fs模块删除文件,并删除对应的缓存记录。

即,如图2所示,提供了一种缓存处理方法,可以包括:

S1:在请求发起前,拦截请求;

S2:根据资源类型,判断是否需要缓存,如果是,则执行S3,如果否,则执行S7;

S3:判断资源是否已缓存,如果已缓存,则执行S4,如果未缓存,则执行S5;

S4:请求重定向,请求本地缓存资源,结束;

S5:放行请求,请求远程资源;

S6:在请求结束时,下载资源存储到本地,相关信息存储到数据库,结束;

S7:放行请求,请求远程资源。

在上例中,客户端独立实现资源缓存,降低了对服务端的依赖度,无需第三方应用进行改动,对客户端内的所有应用进行统一缓存管理,解决了现有的所有资源都进行缓存而导致的访问效率低下、存储资源占用率高的问题,达到了有针对性地提升访问效率的情况下,减少对存储资源占用的技术效果。

本申请上述实施例所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在电子设备上为例,图3是本申请提供的一种资源请求的处理方法的电子设备的硬件结构框图。如图3所示,电子设备10可以包括一个或多个(图中仅示出一个)处理器02(处理器02可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器04、以及用于通信功能的传输模块06。本领域普通技术人员可以理解,图3所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,电子设备10还可包括比图3中所示更多或者更少的组件,或者具有与图3所示不同的配置。

存储器04可用于存储应用软件的软件程序以及模块,如本申请实施例中的资源请求的处理方法对应的程序指令/模块,处理器02通过运行存储在存储器04内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的资源请求的处理方法。存储器04可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器04可进一步包括相对于处理器02远程设置的存储器,这些远程存储器可以通过网络连接至电子设备10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

传输模块06用于经由一个网络接收或者发送数据。上述的网络具体实例可包括电子设备10的通信供应商提供的无线网络。在一个实例中,传输模块06包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输模块06可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。

在软件层面,上述资源请求的处理装置可以如图4所示,包括:

拦截模块401,用于在客户端侧拦截资源请求;

确定模块402,用于根据预先设置的缓存策略,确定所述资源请求所请求的资源是否为需缓存的资源;

处理模块403,用于在确定所请求的资源为需缓存的资源的情况下,确定缓存记录表中是否记录有所请求的资源对应的缓存记录,在确定缓存记录表中记录有所请求的资源对应的缓存记录的情况下,将所述资源请求重定向到客户端的本地磁盘,以获取资源;在确定缓存记录表中未记录所请求的资源对应的缓存记录的情况下,通过回调方法放行所述资源请求,以访问远程服务器获取资源;

访问模块404,用于在确定所请求的资源非需缓存的资源的情况下,通过回调方法放行所述资源请求,以访问远程服务器获取资源。

在一个实施方式中,处理模块403具体用于在确定缓存记录表中记录有所请求的资源对应的缓存记录的情况下,根据所述资源请求所请求资源的地址和所述缓存记录表,确定客户端本地磁盘是否存储有该资源;在确定客户端本地磁盘存储有该资源的情况下,将所述资源请求直接重定向到客户端的本地磁盘,以获取资源;在确定客户端本地磁盘未存储该资源的情况下,从远程服务器请求到该资源,并存储在本地磁盘中,再将所述资源请求直接重定向到客户端的本地磁盘,以获取资源。

在一个实施方式中,确定模块402具体用于从所述资源请求中提取所请求的资源的资源类型和资源大小;根据提取的资源类型和资源大小,与所述缓存策略进行比对,以确定所述资源请求所请求的资源是否为需缓存的资源。

在一个实施方式中,处理模块403在确定缓存记录表中未记录所请求的资源对应的缓存记录的情况下,通过回调方法放行所述资源请求,以访问远程服务器获取资源之后,还用于在所述缓存记录表中,增加所请求的资源对应的缓存记录;将从远程服务器获取的资源,存储在客户端的本地磁盘中。

在一个实施方式中,在确定缓存记录表中记录有所请求的资源对应的缓存记录的情况下,将所述资源请求重定向到客户端的本地磁盘,以获取资源之后,还可以将所述缓存记录表中该资源对应的缓存记录中的最近访问时间字段的取值,修改为本次访问时间;相应的,上述资源请求的处理装置还可以用于对所述缓存记录表中的缓存记录,逐条进行检测;删除最近访问时间字段的取值超出预设时间长度的记录,并删除本地磁盘中记录的对应的资源文件。

在一个实施方式中,在客户端侧拦截资源请求之前,可以在客户端的本地磁盘中划分出存储区域作为缓存存储区,并设置存放目录;在存放目录下创建缓存记录表;通过所述缓存记录表,记录缓存资源的信息字段,其中,信息字段可以包括但不限于以下至少之一:资源请求地址、文件版本、文件名、文件类型、缓存文件路径、记录创建时间、最近访问时间。

本申请的实施例还提供能够实现上述实施例中的资源请求的处理方法中全部步骤的一种电子设备的具体实施方式,所述电子设备具体包括如下内容:处理器(processor)、存储器(memory)、通信接口(Communications Interface)和总线;其中,所述处理器、存储器、通信接口通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的计算机程序,所述处理器执行所述计算机程序时实现上述实施例中的资源请求的处理方法中的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:

步骤1:在客户端侧拦截资源请求;

步骤2:根据预先设置的缓存策略,确定所述资源请求所请求的资源是否为需缓存的资源;

步骤3:在确定所请求的资源为需缓存的资源的情况下,确定缓存记录表中是否记录有所请求的资源对应的缓存记录,在确定缓存记录表中记录有所请求的资源对应的缓存记录的情况下,将所述资源请求重定向到客户端的本地磁盘,以获取资源;在确定缓存记录表中未记录所请求的资源对应的缓存记录的情况下,通过回调方法放行所述资源请求,以访问远程服务器获取资源;

步骤4:在确定所请求的资源非需缓存的资源的情况下,通过回调方法放行所述资源请求,以访问远程服务器获取资源。

本申请的实施例还提供能够实现上述实施例中的资源请求的处理方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的资源请求的处理方法的全部步骤,例如,所述处理器执行所述计算机程序时实现下述步骤:

步骤1:在客户端侧拦截资源请求;

步骤2:根据预先设置的缓存策略,确定所述资源请求所请求的资源是否为需缓存的资源;

步骤3:在确定所请求的资源为需缓存的资源的情况下,确定缓存记录表中是否记录有所请求的资源对应的缓存记录,在确定缓存记录表中记录有所请求的资源对应的缓存记录的情况下,将所述资源请求重定向到客户端的本地磁盘,以获取资源;在确定缓存记录表中未记录所请求的资源对应的缓存记录的情况下,通过回调方法放行所述资源请求,以访问远程服务器获取资源;

步骤4:在确定所请求的资源非需缓存的资源的情况下,通过回调方法放行所述资源请求,以访问远程服务器获取资源。

从上述描述可知,本申请实施例在存在资源访问请求的情况下,进行拦截和判断,根据预先设置的缓存策略,确定资源请求所请求的资源是否为需缓存的资源,如果不是需缓存的资源,就通过回调方法放行所述资源请求,以访问远程服务器获取资源,如果是需缓存的资源,那么再通过缓存记录表来进一步确定是从本地磁盘获取资源还是从远程服务器获取。即,对资源请求所请求的资源进行了分类判断,这样可以解决现有的所有资源都进行缓存而导致的访问效率低下、存储资源占用率高的问题,达到了有针对性地提升访问效率的情况下,减少对存储资源占用的技术效果。

本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于硬件+程序类实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

虽然本申请提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、车载人机交互设备、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。

虽然本说明书实施例提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或终端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。

为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书实施例时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本说明书实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书实施例的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

以上所述仅为本说明书实施例的实施例而已,并不用于限制本说明书实施例。对于本领域技术人员来说,本说明书实施例可以有各种更改和变化。凡在本说明书实施例的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书实施例的权利要求范围之内。

技术分类

06120116551519