DOCTYPE
DOCTYPE
是用来声明文档类型和 DTD
规范的,一个主要的用途便是文件的合法性验证。如果文件代码不合法,那么浏览器解析时便会出一些差错。HTML
编辑器通常也会在语法高亮的同时提供合法性验证。
通常有以下几种:
HTML5(推荐使用,其他的有触发怪异模式和近标准模式的风险)
1
一个深藏功与名的软件开发爱好者
JavaScript
从诞生之日起就是一门单线程的非阻塞的脚本语言
单线程是必要的,也是 JavaScript
这门语言的基石,原因之一在其最初也是最主要的执行环境——浏览器中,我们需要进行各种各样的 DOM
操作。试想一下 如果 JavaScript
是多线程的,那么当两个线程同时对 DOM
进行一项操作,例如一个向其添加事件,而另一个删除了这个 DOM
,此时该如何处理呢?因此,为了保证不会 发生类似于这个例子中的情景,JavaScript
选择只用一个主线程来执行代码,这样就保证了程序执行的一致性。
浏览器接收到服务器返回的 HTML
、CSS
和 JavaScript
字节数据并对其进行解析和转变成像素的渲染过程被称为关键渲染路径。通过优化关键渲染路径即可以缩短浏览器渲染页面的时间。
浏览器渲染页面前需要先构建 DOM
和 CSSOM
树。因此,我们需要确保尽快将 HTML
和 CSS
都提供给浏览器。
1.用户输入网址
2.浏览器通过 DNS
获取网站的 IP
地址。客户端先检查本地是否有对应的 IP
地址,若找到则返回响应的 IP
地址。若没找到则请求上级 DNS
服务器,直至找到或到根节点。
more >>
DNS
查找IP
地址的顺序: 浏览器缓存、系统缓存、互联网服务提供商(ISP
)的DNS
缓存、递归搜索(从浏览器缓存开始,如果没找到就继续往下一个找)。找到后,浏览器会获得一个IP
地址。
对模块常见的一个问题就是:将组件 X 的实例传递到模块 Y 的最佳方式是什么?
常见的模式有一下几种:
push(val1,val2,...)
、pop
操作,增加和删除,后进先出。返回数组的长度、弹出的元素。unshift(val1,val2,...)
、shift()
对应在开头添加元素和删除元素。返回数组的长度、弹出的元素。splice(start,deleteCount,val1,val2,...)
从开始位置删除一定数量的元素,并从这个位置插入新的元素。返回删除的数组。reverse()
反向。返回数组本身。sort([orderfunction])
排序。slice([start] [,end])
返回子数组,拷贝后的,复制一个数组简单地 slice()
。join(seperator)
返回以 seperator
作为间隔的字符串,默认为 ,
。concat([arr1][,arr2]...)
连接数组并返回新的数组,concat()
复制数组。indexOf(val)
,includes(val)
,toString
(同 join()
或 join(",")
),forEach()
,every
,findIndex
,map
,reduce
,keys
,values
。tag:
缺失模块。
1、请确保node版本大于6.2
2、在博客根目录(注意不是yilia根目录)执行以下命令:
npm i hexo-generator-json-content --save
3、在根目录_config.yml里添加配置:
jsonContent: meta: false pages: false posts: title: true date: true path: true text: false raw: false content: false slug: false updated: false comments: false link: false permalink: false excerpt: false categories: false tags: true