2 曾国潘

尚未进行身份认证

越努力越幸运

等级
TA的排名 30w+

谈谈Ajax

定义Asynchronous JavaScript and XML,意思是异步JS和XML。解释下异步,异步是相对于同步来说的,同步即同时进行(累积多了就排队,一个一个执行,必须等上一个结束,才能到下一个),而异步就是执行到我了,我去旁边继续执行等结果,后面排队的不用等我结果出来再执行。这是对于ajax的特点来设计的,**因为ajax对后端数据的请求需要时间,**而这个时间不利用起来就是浪费...

2020-03-03 21:48:02

JS异步解决方案的发展历程以及优缺点

JS 异步已经告一段落了,这里来一波小总结~1. 回调函数(callback)setTimeout(() => { // callback 函数体}, 1000)缺点:回调地狱,不能用 try catch 捕获错误,不能 return回调地狱的根本问题在于:缺乏顺序性: 回调地狱导致的调试困难,和大脑的思维方式不符嵌套函数存在耦合性,一旦有所改动,就会牵一发而动全身,...

2020-03-05 11:49:14

重绘与回流

重绘与回流的机制1.CSS外部文件的引入要放到头部,加载CSS的时候页面渲染是被阻塞的,JS也是会阻塞页面渲染的,UI渲染和JS引擎线程是互斥的,不是并行的,CSS的性能会让JS变慢,优化性能,layout painting。2.当页面布局和几何属性改变时就需要回流。3.回流涉及元素的规模尺寸,布局,隐藏等属性改变。4.不影响布局,涉及元素的外观和风格的时候,就涉及重绘。5.回流一定重绘...

2020-03-04 20:25:51

深入分析懒加载、预加载

懒加载

2020-03-04 19:08:37

浏览器存储方式对比

Cookie1.因为HTTP请求无状态,所以需要Cookie去维持客户端状态。2.浏览器客户端记录保存Cookie,服务端辨别用户的信息。3.Cookie的生成方式:http response header 中的set-cookie,由服务端生成,客户端把Cookie存储和维护。4.JS中可以通过document.cookie来读写cookie。5…之后的请求都携带Cookie,就像健身...

2020-03-04 21:22:14

接口防刷解决思路

场景和原因:1.在项目中后台只需要提供一套API接口,就可以接入安卓、小程序、IOS、web等多个应用程序,这样可以节约开发成本。但是一个后台接入这么多应用程序的http请求,必然导致后端的压力非常大。对于这些情况我们需要对用户的访问进行限流访问,我们可以依次对Nginx、tomcat、接口进行限流。2.对于一些请求进行过滤和拦截是非常有必要的,能够有效地减轻后台的压力。3.考虑线上环境 ...

2020-03-05 11:32:31

详细剖析强缓存和协商缓存

Cache-control1.max-age:在这段时间内,浏览器再次要资源时,不用去服务器请求,不会过期,直接在客户端读取。优先级大于expires2.expires:3.s-maxage:只能是public缓存,可能有代理服务器缓存,比如CDN。私人是客户端的某一用户,public比如CDN 优先级大于max-age4....

2020-03-04 23:44:16

页面加载渲染的优化(一)

1.HTML本身是通过网址请求回来的,由字节流转换成字符流,浏览器进行词法分析,分析成词法的token,从上到下,不同 >的标签类型会解析成不同的对象,然后加载到DOM树上。2.HTML中会通过link引入其他资源,这时会并发的请求静态资源,请求回来之后会和CSS资源进行结合,生成渲染树。3.只有DOM树和CSS树都生成之后才会进行渲染,布局,绘制。特点1.顺序执行,并发加载(...

2020-03-04 14:01:27

Node.js的三大特点

单线程Nodejs跟Nginx一样都是单线程为基础的,这里的单线程指主线程为单线程,所有的阻塞的全部放入一个线程池中,然后主线程通过队列的方式跟线程池来协作。线程池主要由一堆callback回调函数构成的,然后主线程在循环间隙中适当调用,并清空队列。在Java、PHP或者.net等服务器端语言中,会为每一个客户端连接创建一个新的线程。而每个线程需要耗费大约2MB内存。也就是说,理论上,一个8G...

2020-03-03 23:45:38

前端的单页面模式和多页面模式

思考动机前端部分的搭建,需要考虑使用哪种模式进行页面之间的跳转交互,而项目内的页面交互,不可避免的需要相互之间的数据共享。模式选择单页面模式(SPA Single-page Application):只有一张Web页面的应用,是一种从Web服务器加载的富客户端,单页面跳转仅刷新局部资源 ,公共资源(js、css等)仅需加载一次页面跳转:使用js中的append/remove或者s...

2020-03-03 21:59:46

深入学习浏览器缓存机制

一个优秀的缓存策略可以:缩短网页请求资源的距离,减少延迟。由于缓存文件可以重复利用,还可以减少带宽,降低网络负荷。对于一个数据请求来说,可以分为发起网络请求、后端处理、浏览器响应三个步骤。浏览器缓存可以帮助我们在第一和第三步骤中优化性能。比如说直接使用缓存而不发起请求,或者发起了请求但后端存储的数据和前端一致,那么就没有必要再将数据回传回来,这样就减少了响应数据。...

2020-03-05 02:59:52

组件传值

父组件向子组件通信子组件向父组件通信跨级组件通信没有嵌套关系组件之间的通信React数据流动是单向的,父组件向子组件通信也是最常见的;父组件通过props向子组件传递需要的信息Child.jsximport React from 'react';import PropTypes from 'prop-types';export default function Child({ n...

2020-03-01 23:50:20

前端学习HTML

ctrl+N 创建文件 F1打开浏览器前端:大网页网页:html 文档,经过浏览器 渲染之后展示出来的页面渲染:动作 。html 加浏览器变成人们看到的页面编码:通过代码的形势把想要展示的页面写道HTML里面HTML CSS 负责页面的内容 肉体 JS页面的行为 大脑HTML:页面的结构 手脚 CSS 样式 美观HTML代码:1.文本内容:能被浏览器直接显...

2019-12-14 20:40:48

快速排序JS

思想:创建两个数组left right 取一个基准值可以数组中任一元素 下面取了数组的中间元素并且从数组中剥离出来 将数组中的元素与基准值比较 小于基准值的放进左边 left数组 大于基准值的放进右边right数组 重复 步骤2 3 var arr = [3, 4, 2, 6, 5, 8, 9, 10, 16, 13]; // length = 10 functi...

2019-12-17 21:40:18

数组练习

二、题目一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。1、思路大家首先想到的是顺序扫描法,但是这种方法的时间复杂度是O(n^2)。接着大家又会考虑用哈希表的方法,但是空间复杂度不是O(1)。应该怎么做才能即满足时间复杂度是O(n)又满足空间复杂度是O(1)的要求呢?我们可以想一想“异或...

2020-01-31 08:13:48

JS学习笔记

一、函数参数arguments和命名参数function add(n1, n2){ arguments[1] = 10;}此时读取n2和arguments[1]并不会访问相同的内存空间,他们的内存空间是独立的,但他们的值保持同步。二、变量,作用域和内存问题1.传递参数1.所有的参数都是按值传递的。在向参数传递引用类型的值时,会把这个值在内存中的地址复制给一个局部变...

2020-01-30 17:24:07

数组去重

前言module.exports = async function getFnRunTime(fn) { let startTime = Date.now(), endTime; let result = await fn(); endTime = Date.now(); console.log(`total time:${endTime-startTi...

2020-01-30 16:29:28

二叉树打印

题目描述从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。1.1、分析 这一题是一个宽搜问题,我们用一个队列来模拟整个过程,把每一层放入队列,从队首打印出结果,然后再把下一层的孩子节点放入队列尾部。class Solution {public: vector<vector<int> > Print(TreeNode...

2019-12-16 23:10:45

组合总和 算法题JS

力扣40:给定一个数组candidates和一个目标数target,找出candidates中所有可以使数字和为target的组合。candidates中的每个数字在每个组合中只能使用一次。说明:所有数字(包括目标数)都是正整数。解集不能包含重复的组合。示例1:输入: candidates =[10,1,2,7,6,1,5], target =8,...

2019-12-18 18:58:00

从输入URL到页面加载的过程学习笔记

目录从浏览器接收url到开启网络请求线程多进程的浏览器多线程的浏览器内核解析URLDNS查询得到IP五层因特网协议栈从服务器接收到请求到对应后台接收到请求负载均衡后台的处理后台和前台的http交互cookie以及优化从浏览器接收url到开启网络请求线程这一部分要深入学习浏览器进程/线程模型,JS的运行机制多进程的浏览器浏览器是多进程...

2020-01-04 20:26:33

查看更多

勋章 我的勋章
  • 技术圈认证
    技术圈认证
    用户完成年度认证,即可获得
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。