原文链接

AJAX-Cache是什么

Ajax是前端开发必不可少的数据获取手段,在频繁的异步请求业务中,我们往往需要利用“缓存”提升界面响应速度,减少网络资源占用。AJAX-Cache是一款jQuery缓存插件,可以为$.ajax()方法扩展缓存功能。

AJAX-Cache提供什么

1. 定时缓存

大多数的缓存场景是,希望将某个接口数据在一定时间段内缓存起来,缓存期内不再发起请求直接返回本地数据,过了这段时间再重新获取并更新缓存。

这就是“定时缓存”的典型使用场景,我们可以为$.ajax()方法传入localCache: Number开启定时缓存,Number是缓存秒毫秒数。定时缓存实际上是牺牲了数据实时性换取响应速度,使用中通过设置不同的缓存时长,可以匹配不同的业务场景,比如对于相对稳定的数据可以设置较长的缓存时间,而设置较短的缓存时间则可以起到请求“防抖”作用。

2. 快照缓存

更多的时候我们希望接口能兼具实时性和响应速度,比如应用首屏的异步数据块,既要快又要新,虽然这种需求听起来很“不科学”,但我们确实可以通过“快照缓存”满足这个需求。

$.ajax()方法传入localCache: "snapshot"可以开启快照缓存,此时每当接口成功请求后都会为数据建立一份“快照”,下次请求时接口会首先将最近的快照数据作为结果返回,供前端渲染界面,同时发送请求获取最新数据,新数据到达后会与快照做对比,如果与快照相同则缓存命中,如果与快照不同会更新快照,并将新数据返回,供前端更新界面。也就是说启用快照缓存的接口前端有可能得到两次返回结果,为了让前端能够区分出快照,对象格式的快照数据会自动增加一个snapshot=true的属性。

3. 缓存清理

插件本身会自动清理过期缓存;

对于不想继续使用缓存的接口可以为$.ajax()方法传入localCache: false清理当前接口的缓存并返回最新数据;

也可以调用$.ajaxCache.clear()清理所有AJAX-Cache插件产生的缓存。

4. 并发管理

除了上述基本功能,AJAX-Cache还考虑到了极端情况下的请求并发问题,当某个接口在本地没有缓存或者缓存过期时发生了并发,AJAX-Cache会拦截并发请求,暂存请求回调,只向服务端发送一次请求,待拿到数据后再依次执行暂存的请求回调,从而真正起到减少网络资源占用的作用。

5. 约定优于配置

最后,Ajax-Cache奉行“约定优于配置”的理念,将主要功能都集中到一个localCache配置上,使用简单,将对业务代码的侵入性降到最低,如果没有使用$.ajaxCache全局方法的话,从页面中直接将Ajax-Cache插件移除业务代码也不会报错。

使用简单不代表功能简单,如果需要修改Ajax-Cache的全局配置,也可以通过$.ajaxCache.set(config[Object])方法实现,目前有两个配置项:

扩展信息

官网:refined-x.com/AJAX-Cache/
Github:github.com/tower1229/A…

前端路上原创技术文章,转载请注明出处:refined-x.com/2018/03/07/…

对文章内容有任何疑问欢迎留言讨论,或者扫描下方二维码加入“前端路上-知识星球”付费提问。

原文链接: http://www.codedata.cn/hacknews/152047480078227868

AJAX-Cache:一款好用的Ajax缓存插件相关推荐

  1. WordPress加速缓存插件WP Super cache安装方法及使用技巧

    当Wordpress博客的访问量逐渐升高时,如何加快Wordpress运行效率,减少服务器压力,提高Wordpress的访问速度,就成为了日益紧迫的事情了.话说Wordpress臃肿低效率的毛病在网上 ...

  2. WordPress缓存插件Cache Enabler使用教程

    Cache Enabler是适用于WordPress的轻量级缓存插件,它通过生成静态HTML文件来使您的网站更快,并且它是最早使用WebP支持的缓存插件之一.它是由KeyCDN背后的公司创建的,该内容 ...

  3. 推荐10款非常有用的 Ajax 插件

    这篇文章与大家分享的是10款非常有用的 Ajax 插件,有用于图片的,用于分页的,还有用于导航的.这些作者的想法特别新颖,希望你能从中找到自己需要的插件. 1. AJAX-ZOOM 非常强大的一款插件 ...

  4. ajax post提交数组6,jQuery的ajax()、post()方法提交数组,参数[] 问题

    当用$.ajax()向后台提交参数时,如果参数中数组的话一般在后台会用List,或Integer[] 等数组对象进行接收. 比如: $.ajax({ type: "POST", u ...

  5. html同时执行多个ajax,Ajax方法详解以及多个Ajax并发执行

    AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML).javascript 先来一段代码html $.ajax({ type: &q ...

  6. ajax里怎么添加跳转地址,Ajax中window.location.href无法跳转的解决办法

    $("#myForm").submit(function(){ $.ajax({ cache: true,type: "POST",url: "/Ba ...

  7. ajax局部刷新_OA系统 考勤签到 ajax查询考勤数据!!!

    学习主题:OA系统 学习目标: 1 掌握web开发项目实战,熟练使用web开发基础技术 1. 考勤管理-签到-前台代码实现 (1) jQuery代码,页面初始化绑定事件,怎么实现? 将数据写在$(fu ...

  8. ajax在jQuery的应用,Ajax在jQuery中的应用($.ajax()方法)

    Ajax() 方法 $.ajax() 中的参数及使用方法 在jQuery中,$.ajax() 是最底层的方法,也是功能最强的方法.$.get().$.post().$.getScript().getJ ...

  9. ajax上传多文件和数据,Ajax上传数据和上传文件(三种方式)

    Ajax向后端发送数据可以有三种方式:原生Ajax方式,jQuery Ajax方式,iframe+form 方式(伪造Ajax方式) Title .btn { background-color: co ...

最新文章

  1. 文件夹内多文件上传到服务器
  2. 一个考察函数基础知识的题
  3. Xcode 6 UITextField 键盘不弹出
  4. Js~对数组进行分组户数
  5. 昨日参加Symantec公司用户大会
  6. How to write an operating system
  7. Codeforces Round #419 (Div. 2)
  8. php文件读取文件内容,PHP文件系统函数-读取文件内容几种方式
  9. SQL Server 2008安装和配置过程
  10. latex格式简要说明
  11. 移动端点击保存图片_财经理财新闻资讯类网站织梦模板(带手机端)
  12. Java数据库表自动转化为PO对象
  13. npm 切换源_nrm:npm包管理工具
  14. iOS 开发技巧(一)
  15. STM32——红外接收和红外发射
  16. php 12306查询结果,使用php怎么编写一个12306余票查询功能
  17. 计算机视觉论文-2021-09-06
  18. Windows+cygwin下构造arm-linux交叉编译环境最简单的方法
  19. 人脸与关键点检测:YOLO5Face实战
  20. (转)使用 db2pd 命令进行监视和故障诊断

热门文章

  1. Windows里下载并安装phpstudy(图文详解)
  2. 安卓Apk下载以及静默安装
  3. 不用光盘和u盘怎么重装系统win10
  4. android gpuimage 直播,1小时学会:最简单的iOS直播推流(四)如何使用GPUImage,如何美颜...
  5. 获取ios设备的电池信息
  6. MarkDown图床助手: 截图-传图-生成url 一步到位
  7. 代驾APP开发多少钱才合适,你真知道吗
  8. springcloud config非对称加密
  9. 印度软件水平为什么世界第一_第1部分:为什么现实世界中的软件需求很难
  10. Windows11 ISO原版系统镜像