舒小喵的blog

never say never


  • 首页

  • 分类

  • 标签

  • 归档

  • 关于

浏览器04--Event Loop(1)

发表于 2019-04-02 | 分类于 Web 前端 , 前端基础 , 浏览器
字数统计: 1k | 阅读时长 ≈ 4

从promise、process.nextTick、setTimeout出发,谈谈Event Loop中的Job queue

原文连接:从promise、process.nextTick、setTimeout出发,谈谈Event Loop中的Job queue

问题的引出

event loop都不陌生,是指主线程从“任务队列”中循环读取任务,比如
例1:

1
2
3
4
5
setTimeout(function(){console.log(1)},0);

console.log(2)

//输出2,1
阅读全文 »

js零散笔记04--实现继承的方法及优缺点总结

发表于 2019-04-01 | 分类于 Web 前端 , 前端基础 , js零散笔记
字数统计: 2.8k | 阅读时长 ≈ 11

#JavaScript实现继承的方法及优缺点总结
本文内容参考《JavaScript高级程序设计》第三版

原型链

ECMAScript中描述了原型链的概念,并将原型链作为实现继承的主要方法。
原型链继承的基本思想是利用原型让一个引用类型继承另一个引用类型的属性和方法。
简单回顾一下构造函数、原型和实例的关系:每个构造函数都有一个原型对象,原型对象都包含一个指向构造函数的指针,而实例都包含一个指向原型对象的内部指针。

阅读全文 »

浏览器03--Repaint和Reflow

发表于 2019-03-30 | 分类于 Web 前端 , 前端基础 , 浏览器
字数统计: 2.2k | 阅读时长 ≈ 7

Repaint和Reflow

是什么?

浏览器解析大概的工作流程:

  • 解析HTML以构建DOM树:渲染引擎开始解析HTML文档,转换树中的html标签或js生成的标签到DOM节点,它被称为 – 内容树。
  • 构建渲染树:解析CSS(包括外部CSS文件和样式元素以及js生成的样式),根据CSS选择器计算出节点的样式,创建另一个树 —- 渲染树。
  • 布局渲染树: 从根节点递归调用,计算每一个元素的大小、位置等,给每个节点所应该出现在屏幕上的精确坐标。
  • 绘制渲染树: 遍历渲染树,每个节点将使用UI后端层来绘制。
    可以看到Repain 和 Reflow 分别出现在了第三和第四步。定义为如下:
    阅读全文 »

浏览器02--CSRF和XSS网络攻击和防范

发表于 2019-03-29 | 分类于 Web 前端 , 前端基础 , 浏览器
字数统计: 5k | 阅读时长 ≈ 18

浏览器笔记————CSRF和XSS网络攻击和防范

根据网上的资料做了一些补充和修改,以下是原文链接:
原文链接:https://blog.csdn.net/zl834205311/article/details/81773511

XSS

XSS:跨站脚本攻击,是说攻击者通过注入恶意的脚本,恶意攻击者往 Web 页面里嵌入恶意的客户端脚本,当用户浏览此网页时,脚本就会在用户的浏览器上执行,进而达到攻击者的目的。比如获取用户的 Cookie、导航到恶意网站、携带木马等。借助安全圈里面非常有名的一句话:所有的输入都是有害的。
大部分的 XSS 漏洞都是由于没有处理好用户的输入,导致恶意脚本在浏览器中执行。任何输入提交数据的地方都有可能存在 XSS。

阅读全文 »

浏览器01--前端优化

发表于 2019-03-28 | 分类于 Web 前端 , 前端基础 , 浏览器
字数统计: 5k | 阅读时长 ≈ 17

浏览器笔记————前端优化

前端优化

前端是庞大的,包括 HTML、 CSS、 Javascript、Image 、Flash等等各种各样的资源。前端优化是复杂的,针对方方面面的资源都有不同的方式。那么,前端优化的目的是什么 ?

从用户角度而言,优化能够让页面加载得更快、对用户的操作响应得更及时,能够给用户提供更为友好的体验。
从服务商角度而言,优化能够减少页面请求数、或者减小请求所占带宽,能够节省可观的资源。
  总之,恰当的优化不仅能够改善站点的用户体验并且能够节省相当的资源利用。

阅读全文 »

Node.js01--零散总结

发表于 2019-03-27 | 分类于 Node.js , Node.js(1) , Node基础
字数统计: 2.7k | 阅读时长 ≈ 9

Node.js笔记(七)————零散总结

模块

net模块包含了Node需要的所有TCP功能。用net.createServer()方法创建一个新的TCP服务端。
Express模块是合同谈判模块的扩展。Express、net、http都是用Server()创建服务器,并用listen()来监听指定窗口。
Express会在后台调用http模块,Express增加了亮相http模块没有的功能:根据HTTP请求的不同方法进行过滤;根据特定的URL进行过滤。

采用HTTP模块时,需要创建HTTP头,res.writeHead,并且在发送请求内容之前把HTTP头先发送给客户端。Express提供了一个方便的方法,res.(http:response)对象的send()方法。此方法发送HTTP头,同时还会调用response.end()方法。如果给res.send()传递一个对象,它会自动把其序列化为JSON并添加对应的HTTP头。

阅读全文 »

Node.js01--Buffer(缓冲区)

发表于 2019-03-26 | 分类于 Node.js , Node.js(1) , Node基础
字数统计: 1.6k | 阅读时长 ≈ 6

Node.js笔记(五)————Buffer(缓冲区)

Node.js Buffer(缓冲区)

JavaScript 语言自身只有字符串数据类型,没有二进制数据类型。

但在处理像TCP流或文件流时,必须使用到二进制数据。因此在 Node.js中,定义了一个 Buffer 类,该类用来创建一个专门存放二进制数据的缓存区。

在 Node.js 中,Buffer 类是随 Node 内核一起发布的核心库。Buffer 库为 Node.js 带来了一种存储原始数据的方法,可以让 Node.js 处理二进制数据,每当需要在 Node.js 中处理I/O操作中移动的数据时,就有可能使用 Buffer 库。原始数据存储在 Buffer 类的实例中。一个 Buffer 类似于一个整数数组,但它对应于 V8 堆内存之外的一块原始内存。

阅读全文 »

Node.js01--全局函数

发表于 2019-03-25 | 分类于 Node.js , Node.js(1) , Node基础
字数统计: 1.4k | 阅读时长 ≈ 5

Node.js笔记(六)————全局函数

Node.js 全局对象

JavaScript 中有一个特殊的对象,称为全局对象(Global Object),它及其所有属性都可以在程序的任何地方访问,即全局变量。

在浏览器 JavaScript 中,通常 window 是全局对象, 而 Node.js 中的全局对象是 global,所有全局变量(除了 global 本身以外)都是 global 对象的属性。

在 Node.js 我们可以直接访问到 global 的属性,而不需要在应用中包含它。

阅读全文 »

Node.js01--stream模块和http模块

发表于 2019-03-24 | 分类于 Node.js , Node.js(1) , Node基础
字数统计: 2k | 阅读时长 ≈ 8

Node.js笔记(四)————stream模块和http模块

stream 模块

stream是Node.js提供的又一个仅在服务区端可用的模块,目的是支持“流”这种数据结构。

什么是流?流是一种抽象的数据结构。想象水流,当在水管中流动时,就可以从某个地方(例如自来水厂)源源不断地到达另一个地方(比如你家的洗手池)。我们也可以把数据看成是数据流,比如你敲键盘的时候,就可以把每个字符依次连起来,看成字符流。这个流是从键盘输入到应用程序,实际上它还对应着一个名字:标准输入流(stdin)。

如果应用程序把字符一个一个输出到显示器上,这也可以看成是一个流,这个流也有名字:标准输出流(stdout)。流的特点是数据是有序的,而且必须依次读取,或者依次写入,不能像Array那样随机定位。

阅读全文 »

Node.js01--EventEmitter

发表于 2019-03-23 | 分类于 Node.js , Node.js(1) , Node基础
字数统计: 1.7k | 阅读时长 ≈ 6

Node.js笔记(三)————Node.js EventEmitter

Node.js EventEmitter

Node.js 所有的异步 I/O 操作在完成时都会发送一个事件到事件队列。

Node.js 里面的许多对象都会分发事件:一个 net.Server 对象会在每次有新连接时触发一个事件, 一个 fs.readStream 对象会在文件被打开的时候触发一个事件。 所有这些产生事件的对象都是 events.EventEmitter 的实例。

EventEmitter 类

events 模块只提供了一个对象:events.EventEmitter。EventEmitter 的核心就是事件触发与事件监听器功能的封装。

阅读全文 »
1…678…11
Teresa

Teresa

学习前端路上的技术、笔记分享和记录

103 日志
30 分类
59 标签
GitHub E-Mail Gitee
0%
© 2019 — 2020 Teresa | Site words total count: 226.6k
你是第 位访客 本站总访问量 次