CN108108400B - 一种api基于本地数据增量的方法 - Google Patents
一种api基于本地数据增量的方法 Download PDFInfo
- Publication number
- CN108108400B CN108108400B CN201711280598.4A CN201711280598A CN108108400B CN 108108400 B CN108108400 B CN 108108400B CN 201711280598 A CN201711280598 A CN 201711280598A CN 108108400 B CN108108400 B CN 108108400B
- Authority
- CN
- China
- Prior art keywords
- time
- data
- server
- client
- update
- 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
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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2477—Temporal data queries
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Probability & Statistics with Applications (AREA)
- Fuzzy Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明涉及一种API基于本地数据增量的方法,包括以下步骤:客户端进入页面,从本地的缓存数据中加载页面展示数据;判断本地数据的数据量是否足够支撑页面展示,是则不请求数据,否则请求服务器,请求参数:时间identity、类型type、数量count;服务器的数据库通过请求参数和算法取出数量count,并返回数量列表;客户端通过收到响应后,从数据列表中取出创建时间create_time为最小的数据存储,用作于下次加载历史数据使用,从数据列表中取出更新时间update_time为最大的数据存储,用作于下次加载最新数据使用。本发明该方法能够大大有效地减少客户端向服务器的数据请求频率和请求数据的传输量。
Description
技术领域
本发明涉及一种API基于本地数据增量的方法。
背景技术
在中国互联网的发展过程中,PC互联网已日趋饱和,移动互联网呈现井喷式发展。数据显示:移动互联网的网民已远超过8亿。伴随着移动终端价格的下降及wifi的广泛铺设,移动网民呈现爆发趋势。随着移动互联网的增长,移动、联通、电信等从2G、3G到4G不断地提高网速,流量价格也更贵。随着移动互联网的资本家以及创业者的更多加入,移动开发成为一个热门的趋势。
在移动APP开发过程中,需要有以下几个支撑:一、服务器的硬件支撑;二、服务器的带宽支撑;三、手机的硬件支撑;四、手机的网络支撑。数据的流转过程中,从手机端的APP→发出请求→服务器处理→响应请求→大量的数据返回→手机端APP接收处理。这其中的阶段会涉及到服务器CPU的处理能力、服务器的带宽情况、手机的CPU处理能力、手机的网络支撑等。
而目前现状是,技术人员在开发过程中,基本是每次请求的数据是没有经过服务器的特殊处理,并且是全量的数据直接通过网络传输给手机APP,比如APP需要展示全国城市地区数据,共6000多条数据,这6000多条数据基本不怎么变更,而如果每次都向服务器请求这6000多条数据,或者分页重复请求都会直接有以下几个影响:一、直接导致服务器的CPU压力,无法处理间接导致服务器当机;二、直接导致服务器的带宽压力,无法处理请求间接导致服务无响应;三、直接导致手机的CPU压力,间接导致APP反应慢、卡顿等;四、直接导致手机的网络带宽压力,间接导致流量不够用,传输速度变慢等。
基于以上的问题所在,如果企业为了访问速度快,友好的用户体验,则需要增购机器,加大带宽等。而用户为了使用该APP,或者体验更好,则需要买更好设备,增加流量。这样间接导致双方成本大大增加。
发明内容
为了克服现有技术存在的缺陷,本发明所要解决的技术问题是提供一种API基于本地数据增量的方法,该方法能够大大有效地减少客户端向服务器的数据请求频率和请求数据的传输量。
为解决上述技术问题,本发明采用的技术方案是:一种API基于本地数据增量的方法,包括以下步骤:
S1、服务器采用该方法的每个业务的数据表上都包含有两个字段:更新时间update_time、创建时间create_time;
S2、客户端第一次进入页面,通过API向服务器请求数据,传入两个字段:时间identity、数量count,其中时间identity首次为当前时间;
S3、服务器接收到请求后,通过请求字段判断是否首次,若是首次的话,则以创建时间create_time倒序排序,取出数量count后,返回数据列表;
S4、客户端收到响应后,从数据列表中取出创建时间create_time为最小的数据存储,即最小创建时间min_time,用作于加载历史数据使用,取出更新时间update_time为最大的数据存储,即最大更新时间max_time,用作于加载最新数据使用;
S5、客户端以后每次进入页面,先从本地的缓存数据中加载页面展示数据;
S6、判断本地数据的数据量是否足够支撑页面展示,若是,则不再向服务器请求数据,若否,则再向服务器请求数据,请求类型有以下两种:
S6.1、加载历史数据方法:
S6.1.1、客户端通过API向服务器请求数据,传入三个字段:类型type、时间identity、数量count,其中类型type为1,时间identity为上一次请求存储的最小创建时间min_time;
S6.1.2、服务器的数据库通过算法:创建时间create_time<最小创建时间min_time,取出数量count列表,并返回数据列表;
S6.1.3、客户端通过收到响应后,从数据列表中取出创建时间create_time为最小的数据存储,即最小创建时间min_time,用作于下次加载历史数据使用;
S6.2、加载最新数据方法:
S6.2.1、客户端通过API向服务器请求数据,传入三个字段:类型type、时间identity、数量count,其中类型type为2,时间identity为上一次请求存储的最大更新时间max_time;
S6.2.2、服务器的数据库通过算法:更新时间update_time>最大更新时间max_time,取出数量count列表,并返回数据列表;
S6.2.3、客户端通过收到响应后,从数据列表中取出更新时间update_time为最大的数据存储,即最大更新时间max_time,用作于下次加载最新数据使用。
优选地,所述客户端为APP客户端或web客户端。
与现有技术相比,本发明具有以下有益效果:通过缓存数据于本地,通过有效标识字段,通过服务器简单字段和算法支撑,取得了以下几个优点:(1)服务器的CPU开销降低,不再需要查询大量的数据,减少IO和内存;(2)服务器的带宽开销降低,不再需要每次传输大量的数据;(3)客户端的CPU开销降低,不再需要全部数据处理以及渲染;(4)客户端的流量开销降低,大大减少用户成本。总之,服务器的成本大大减少,能支撑的用户量更多,用户的开销降低,并且大大地提高用户等待的效率。
附图说明
图1为本发明实施例的流程框图。
具体实施方式
为了让本发明的上述特征和优点更明显易懂,下面特举实施例,并配合附图,作详细说明如下。
如图1所示,一种API基于本地数据增量的方法,包括以下步骤:
S1、服务器采用该方法的每个业务的数据表上都包含有两个字段:更新时间update_time、创建时间create_time;
S2、客户端第一次进入页面,通过API向服务器请求数据,传入两个字段:时间identity、数量count,其中时间identity首次为当前时间;
S3、服务器接收到请求后,通过请求字段判断是否首次,若是首次的话,则以创建时间create_time倒序排序,取出数量count后,返回数据列表;
S4、客户端收到响应后,从数据列表中取出创建时间create_time为最小的数据存储,即最小创建时间min_time,用作于加载历史数据使用,取出更新时间update_time为最大的数据存储,即最大更新时间max_time,用作于加载最新数据使用;
S5、客户端第二次进入页面,先从本地的缓存数据中加载页面展示数据;
S6、判断本地数据的数据量是否足够支撑页面展示,若是,则不再向服务器请求数据,若否,则再向服务器请求数据,请求类型有以下两种:
S6.1、加载历史数据方法:
S6.1.1、客户端通过API向服务器请求数据,传入三个字段(即请求参数):类型type、时间identity、数量count,其中类型type为1,时间identity为上一次请求存储的最小创建时间min_time;
S6.1.2、服务器的数据库通过算法:创建时间create_time<最小创建时间min_time,取出数量count列表,并返回数据列表;
S6.1.3、客户端通过收到响应后,从数据列表中取出创建时间create_time为最小的数据存储,即最小创建时间min_time,用作于下次加载历史数据使用;
S6.2、加载最新数据方法:
S6.2.1、客户端通过API向服务器请求数据,传入三个字段(即请求参数):类型type、时间identity、数量count,其中类型type为2,时间identity为上一次请求存储的最大更新时间max_time;
S6.2.2、服务器的数据库通过算法:更新时间update_time>最大更新时间max_time,取出数量count列表,并返回数据列表;
S6.2.3、客户端通过收到响应后,从数据列表中取出更新时间update_time为最大的数据存储,即最大更新时间max_time,用作于下次加载最新数据使用;
S7、客户端加载更多数据(即第三次、第四次、第五次等以后每次进入页面)的时候,则跳到步骤S6。
其中,所述客户端优选但不局限于APP客户端或web客户端,即可将该方法应用于APP与服务器的数据传输场景或者web与服务器的数据传输场景。其中,APP可以是手机设备APP、平板设备APP或手表设备APP等,web与服务器的数据传输场景可利用ajax技术。
本发明的原理是让一些变化性比较少或者不变的数据缓存在本地客户端,而每次向服务器请求的时候将本地的两端协商的协议中包含的唯一标识字段传递给服务器;从而让服务器可根据该标识字段来计算出本次请求后有变化的数据,或者排除已有数据,只将计算后的增量数据返回,从而达到有效减少数据的目的。
本发明的作用如下:(1)提高网络数据传输的复用性;(2)减少服务器IO和带宽压力;(3)大大减少客户端与服务器传输的数据量,节省大量的流量和响应时间。
以上所述,仅为本发明的较佳实施例,并非对本发明做任何形式上的限制,任何熟悉本领域的技术人员但凡未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做任何简单的修改、均等变化与修饰,皆应属本发明的涵盖范围。
Claims (2)
1.一种API基于本地数据增量的方法,其特征在于,包括以下步骤:
S1、服务器采用该方法的每个业务的数据表上都包含有两个字段:更新时间update_time、创建时间create_time;
S2、客户端第一次进入页面,通过API向服务器请求数据,传入两个字段:时间identity、数量count,其中时间identity首次为当前时间;
S3、服务器接收到请求后,通过请求字段判断是否首次,若是首次的话,则以创建时间create_time倒序排序,取出数量count的数据列表后,返回数据列表;
S4、客户端收到响应后,从数据列表中取出创建时间create_time为最小的数据存储,即最小创建时间min_time,用作于加载历史数据使用,取出更新时间update_time为最大的数据存储,即最大更新时间max_time,用作于加载最新数据使用;
S5、客户端以后每次进入页面,先从本地的缓存数据中加载页面展示数据;
S6、判断本地数据的数据量是否足够支撑页面展示,若是,则不再向服务器请求数据,若否,则再向服务器请求数据,请求类型有以下两种:
S6.1、加载历史数据方法:
S6.1.1、客户端通过API向服务器请求数据,传入三个字段:类型type、时间identity、数量count,其中类型type为1,时间identity为上一次请求存储的最小创建时间min_time;
S6.1.2、服务器的数据库通过算法:创建时间create_time<最小创建时间min_time,取出数量count的数据列表,并返回数据列表;
S6.1.3、客户端通过收到响应后,从数据列表中取出创建时间create_time为最小的数据存储,即最小创建时间min_time,用作于下次加载历史数据使用;
S6.2、加载最新数据方法:
S6.2.1、客户端通过API向服务器请求数据,传入三个字段:类型type、时间identity、数量count,其中类型type为2,时间identity为上一次请求存储的最大更新时间max_time;
S6.2.2、服务器的数据库通过算法:更新时间update_time>最大更新时间max_time,取出数量count的数据列表,并返回数据列表;
S6.2.3、客户端通过收到响应后,从数据列表中取出更新时间update_time为最大的数据存储,即最大更新时间max_time,用作于下次加载最新数据使用。
2.根据权利要求1所述的一种API基于本地数据增量的方法,其特征在于,所述客户端为APP客户端或web客户端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711280598.4A CN108108400B (zh) | 2017-12-05 | 2017-12-05 | 一种api基于本地数据增量的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711280598.4A CN108108400B (zh) | 2017-12-05 | 2017-12-05 | 一种api基于本地数据增量的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108108400A CN108108400A (zh) | 2018-06-01 |
CN108108400B true CN108108400B (zh) | 2020-12-11 |
Family
ID=62208214
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711280598.4A Active CN108108400B (zh) | 2017-12-05 | 2017-12-05 | 一种api基于本地数据增量的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108108400B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109660602B (zh) * | 2018-11-28 | 2022-08-09 | 天津字节跳动科技有限公司 | 数据增量传输方法及装置 |
CN110851258B (zh) * | 2019-11-08 | 2024-04-23 | 深圳前海环融联易信息科技服务有限公司 | Api调用方法、装置、计算机设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013126408A1 (en) * | 2012-02-24 | 2013-08-29 | Qualcomm Incorporated | Cooperative loading of webpages based on shared meta information |
CN103902576A (zh) * | 2012-12-27 | 2014-07-02 | 腾讯数码(天津)有限公司 | 网页分栏信息刷新方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103440317A (zh) * | 2013-08-28 | 2013-12-11 | 电子科技大学 | 基于数据库时间标签的增量数据查询方法 |
CN104239587B (zh) * | 2014-10-17 | 2017-09-12 | 北京字节跳动网络技术有限公司 | 新闻列表刷新的方法及装置 |
CN107196980B (zh) * | 2016-03-14 | 2020-11-13 | 创新先进技术有限公司 | 页面展现流的控制方法、系统及其装置 |
CN105843956A (zh) * | 2016-04-14 | 2016-08-10 | 北京搜狐新媒体信息技术有限公司 | 一种分页查询方法及系统 |
-
2017
- 2017-12-05 CN CN201711280598.4A patent/CN108108400B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013126408A1 (en) * | 2012-02-24 | 2013-08-29 | Qualcomm Incorporated | Cooperative loading of webpages based on shared meta information |
CN103902576A (zh) * | 2012-12-27 | 2014-07-02 | 腾讯数码(天津)有限公司 | 网页分栏信息刷新方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108108400A (zh) | 2018-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11146502B2 (en) | Method and apparatus for allocating resource | |
CN108845816A (zh) | 应用程序更新方法、系统、计算机设备及存储介质 | |
CN103888934B (zh) | 一种移动终端缓存管理装置及管理方法 | |
CN108108400B (zh) | 一种api基于本地数据增量的方法 | |
CN103024013A (zh) | 差异化的传输方法、系统和装置 | |
CN105095282A (zh) | 一种缓存数据更新方法、装置及系统 | |
CN105487640A (zh) | 一种安卓手表预加载和缓存图片的方法 | |
CN110648216A (zh) | 一种风控方法和装置 | |
CN111523670A (zh) | 一种提高深度学习推理设备利用率的批量推理方法、装置和介质 | |
CN113312553A (zh) | 一种用户标签的确定方法和装置 | |
CN112948498A (zh) | 一种分布式系统全局标识的生成方法和装置 | |
CN109190071A (zh) | 移动端缓存方法及装置 | |
CN102740281B (zh) | 数据发送方法、通信设备及通信系统 | |
CN112769945A (zh) | 分布式服务调用方法及装置 | |
CN105843752A (zh) | 分配移动终端内存缓存图片数据方法及装置 | |
CN112948138A (zh) | 一种处理消息的方法和装置 | |
CN115757998A (zh) | 一种电网数据的动态渲染方法及装置 | |
CN112968939B (zh) | 一种移动端资源加载方法和装置 | |
WO2017024976A1 (zh) | 实时信息的展现方法和装置 | |
CN114416212A (zh) | 移动端应用程序数据资源处理方法及装置 | |
CN112949326B (zh) | 信息查询方法、装置、设备和计算机可读介质 | |
CN108052521A (zh) | 协调数据显示方法、应用服务器及存储介质 | |
CN111343172A (zh) | 网络访问权限动态处理方法及装置 | |
CN107666497B (zh) | 数据访问方法和装置 | |
CN115119058B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20210607 Address after: Room 1901, No.1 Jinzhong Road, Huli District, Xiamen City, Fujian Province 361000 Patentee after: Xiamen shushengqiyoutong Technology Co.,Ltd. Address before: 361000 unit 306, Tianrui 99 business center, No.5, Yilan Road, Guanyinshan, Siming District, Xiamen City, Fujian Province Patentee before: XIAMEN SHAOZI TECHNOLOGY Co.,Ltd. |
|
TR01 | Transfer of patent right |