wuwh's blog

Make progress every day


  • 首页

  • 标签39

  • 分类12

  • 归档71

  • 搜索

理解同步、异步和事件循环

发表于 2018-04-20 | 更新于 2022-09-27 | 分类于 javascript
JavaScript运行机制: 所有同步任务都在主线程上执行,形成一个执行栈; 主线程发起异步请求,相应的工作线程就会去执行异步任务,主线程可以继续执行后面的代码; 主线程之外,还存在一个”任务队列”(task queue)。只要异步任务有了运行结果,就在”任务队列”之中放置一个事件,也就是一个消息; 一旦”执行栈”中的所有同步任务执行完毕,系统就会读取”任务队列”,看看里面有哪些事件。那些对应的异步任务,于是结束等待状态,进入执行栈,开始执行; 主线程把当前的事件执行完成之后,再去读取任务队列,如此反复重复执行,这样就行程了事件循环。 1、单线程JS引擎在解释和执行JavaScr ...
阅读全文 »

HTTP缓存机制

发表于 2018-04-18 | 更新于 2022-09-27 | 分类于 其它
只关注前端方面缓存机制的,可能只清楚在HTML页meta标签处理 1<meta http-equiv="Pragma" content="no-store"> 目的是为了不让浏览器缓存当前页面。但是代理服务器不解析HTML内容。这样一般在服务器端对HTTP请求头进行处理控制缓存。 HTTP头控制缓存 大致分为两种:强缓存和协商缓存。强缓存如果命中缓存不需要和服务器发生交互,而协商缓存不管是否命中都要和服务器端进行交互,强制缓存的优先级高于协商缓存。 匹配流程示意图: ==敲黑板:强缓存根据Expire或Cache-Control判断,协商缓 ...
阅读全文 »

HTTP协议总结(整理版)

发表于 2018-04-11 | 更新于 2022-09-27 | 分类于 其它
一、基本概念1.1 web基础 HTTP(HyperText Transfer Protocol):超文本传输协议。 WWW(World Wide Web)的三种技术:HTML、HTTP、URL。 RFC(Request for Comments):征求修正意见书,互联网的设计文档。 1.2 URL URI(Uniform Resource Indentifier):统一资源标识符。 URL(Uniform Resource Locator):统一资源定位符。 URN(Uniform Resource Name):统一资源名称。 ps:URI 包含 URL 和 URN,目前 WEB 只有 ...
阅读全文 »

纯css三角形及其应用

发表于 2018-03-27 | 更新于 2022-09-27 | 分类于 css
前言对于气泡对话框或者Popover与内容连接部分会有小三角形效果,可能在以前直接用图片去实现,其实用纯css即可实现,下面要实现的效果分别是微信对话框和面包屑,以此回顾记录一下。 效果如下: css写三角形原理首先我们设置一个div元素的宽高和边框,观察效果 1234567.demo1 { width: 40px; height: 40px; border-width: 20px; border-style: solid; border-color: #ff0000 #00ff00 #0000ff #ff00ff;} 效果 可以发现分别观察四边框是按类似等边梯 ...
阅读全文 »

前端面试之html

发表于 2018-03-05 | 更新于 2022-09-27 | 分类于 面试
Doctype作用?标准模式与兼容模式各有什么区别? <!DOCTYPE>声明位于位于 HTML 文档中的第一行,处于 <html> 标签之前。告知浏览器的解析器用什么文档标准解析这个文档。DOCTYPE不存在或格式不正确会导致文档以兼容模式呈现。 标准模式的排版 和 JS 运作模式都是以该浏览器支持的最高标准运行。在兼容模式中,页面以宽松的向后兼容的方式显示,模拟老式浏览器的行为以防止站点无法工作。 ps:常见 dotype: HTML4.01 strict:不允许使用表现性、废弃元素(如 font)以及 frameset。声明:<!DOCTYPE HTML ...
阅读全文 »

前端面试之css

发表于 2018-03-04 | 更新于 2022-09-27 | 分类于 面试
Front-end-Developer-Questions FE-interview 介绍一下标准的 CSS 的盒子模型?低版本 IE 的盒子模型有什么不同的? 有两种:IE 盒模型、W3C 盒模型 盒模型:内容(content)、填充(padding)、边框(border)、边界(margin) 区别:IE 盒模型box-sizing为border-box,把 border 和 padding 计算在内 CSS 选择符有哪些?哪些属性可以继承?选择符有: id 选择器(#myid) 类选择器(.myclass) 标签选择器(div, h1, p) 相邻选择器(h1 + p) 子选择器(u ...
阅读全文 »

前端面试之javascript

发表于 2018-03-04 | 更新于 2022-09-27 | 分类于 面试
介绍 js 的基本数据类型Undefined、Null、Boolean、Number、String、ECMAScript 2015 新增 Symbol(创建后独一无二且不可变的数据类型)、ES2020 新增 BigInt(表示整数,没有位置限制)。 介绍 js 有哪些内置对象? Object 是 JavaScript 中所有对象的父对象 数据封装类对象:Object、Array、Boolean、Number 和 String 其他对象:Function、Arguments、Math、Date、RegExp、Error 说几条写 JavaScript 的基本规范? 不要在同一行声明多个变量。 ...
阅读全文 »

前端面试

发表于 2018-03-03 | 更新于 2022-09-27 | 分类于 面试
task1:上下高度固定,中间自适应 css 盒模型标准模型、IE 模型 box-sizing:content-box/border-boxjs 如何获取盒模型的宽(或高)dom.style.widthdom.currentStyle.width –IEwindow.getComputedStyle(dom).widthdom.getBoundingClientRect().width 上下边界重叠,取最大值父子元素兄弟元素空元素(margin-top margin-bottom) DOM 事件DOM 事件捕获流程自定义事件 // 当一个元素注册几个事件时,只执行第一个event.stopIm ...
阅读全文 »

Git简记

发表于 2018-02-27 | 更新于 2022-09-27 | 分类于 git
0. 前言最近有个项目比较赶,于是决定8个人一个并行完成,单独把项目拿出来用gitea管理,没人分一个模块开发,对应也给分支,效果不过,从中也帮助自己重新温习了一下git的使用,小记一下。 1. 安装和使用 在MAC上,安装homebrew,然后通过homebrew 安装Git。 在MAC上另一种安装方法,从AppStore安装Xcode,Xcode集成了Git,不过默认没有安装,你需要运行Xcode,选择菜单“Xcode”->“Preferences”,在弹出窗口中找到“Downloads”,选择“Command Line Tools”,点“Install”就可以完成安装了。 在 ...
阅读全文 »

对MVC、MVP和MVVM的简单认识

发表于 2017-12-07 | 更新于 2022-09-27 | 分类于 其它
1. 先聊一下MVCMVC:Model(模型) View(视图) Controller(控制器),主要是基于分层的目的,让彼此的职责分开。 View通过Controller和Model联系,Controller是View和Model的协调者,view和Model不直接联系,基本联系都是单向的。 2. 顺带提下MVPMVP:是从MVC模式演变而来的,都是通过Controller/Presenter负责逻辑的处理+Model提供数据+View负责显示。 在MVP中,Presenter完全把View和Model进行分离,主要的程序逻辑在Presenter里实现。并且,Presenter和View是没 ...
阅读全文 »
1…5678
wuwhs

wuwhs

71 日志
12 分类
39 标签
GitHub Segmentfault
© 2017 – 2023 copyright by wuwh's blog