浏览器数据库系统-IndexedDB

前端存储数据,我们一般会用到cookieWeb Storage,但是他们都有存储长度的限制,尤其是cookie存储内容是比较小的。如果想要大容量的存储就要用到浏览器的数据库indexedDB了,第一次听说indexedDB是在美团开源的前端监控项目中,用indexedDB存储了日志,但是并没有去研究这个项目,也没有对indexedDB进行学习,但是前段时间接手了一个项目用到了indexedDB来存储数据,所以抽点时间来学习一下。

阅读更多

前端大文件上传实现

文件上传是一个常见的功能,但是大文件上传需要考虑几个问题:

  • 单个请求上传时间及传输大小限制
  • 断点续传
  • 重复文件不上传

本节我们实现一个简单的文件上传功能,前端基于react实现,但基本不涉及到react内容。后端采用koa搭建简单后台用于调试。

阅读更多

叁:dispatchRequest和adapter

书接上回,上节课的内容留下了一个坑,dispatchRequest方法内部究竟做了什么?这一节我们就来看一下其内部实现。

关于取消请求部分的逻辑在这一节会省略掉,以求最简单清晰的去理解整个工作流程。

阅读更多

贰:Interceptor拦截器和Axios类

接下来,我们应该看一下Axios类中究竟做了什么,到底是怎么发送请求的。因为Axios类中应用到了Interceptor,所以我们要先看一下拦截器是怎么实现的。

很遗憾,至于发送请求的详细内容需要到dispatchRequest方法和xhr适配器中才能看到了,在本章节Axios类中我们只能说到调用dispatchRequest方法这一步,所以发送请求的详细内容要留到下一章节来说了,先来看一下本章节的内容吧。

阅读更多

壹:axios默认配置

在上一节的入口文件中,我们都知道axios是基于默认配置创建的,那么这个默认配置到底配置了哪些东西呢?

这一节,我们就来看一看lib/defaults.js的源码内容。

阅读更多

零:axios目录结构与入口文件

本系列内容基于axios0.18.0版本,只对核心内容进行梳理,不会具体到每一个方法细节。至于一些辅助方法等内容,只会在碰到的时候说下这个方法做了什么,不会单独去看辅助方法。新版本的axios对于一些部分进行了修改,但大致是一样的。

axios的适配器adapter分别对xhrhttp做了处理,我们只关注用于浏览器端的xhr,对应用于nodehttp内容不做考虑。

阅读更多

经典面试题[1,2,3].map(parseInt)解析

最近看到这道经典面试题[1,2,3].map(parseInt),本来想的很简单,不就是把1,2,3分别传入parseInt然后返回嘛,结果不应该是[1,2,3]嘛,但是看了答案才发现不是这么简单,还是要细心点多想想。。。

阅读更多