历史记录
-
location.hash
更新url。同时会在浏览器的历史记录中添加一条记录
hash属性设置URL的片段标识符
检查状态的变化,相应的更新自己的状态
发生改变会触发hashchange事件 -
pushState方法
前进或者后悔的的时候,window对象上触发一个popstate事件
接受一个状态对象并为该对象创建一份私有副本,
会递归的复制所有嵌套对象或者数组的内容
这类复制成为结构性复制 -
reolaceState方法
用新的状态代替当前的历史状态 -
location.haschange
跨域消息传递
web浏览器遵循同源策略,不允许访问其他窗口中的文档内容
postMessage方法,允许调用非同源脚本调用,通过异步消息传递的方式
称为 跨文档消息传递
-
data 作为第一个参数传递给postMessage方法的消息内容副本
-
source 消息源自的window对象
-
origin 一个字符串,指定消息来源 url形式
worker 对象
创建worker对象只能使用构造函数
var loader = new Worker('./test.js')
可以通过postMessage 方法来传递参数了
s
terminate 强制一个worker 线程结束运行
worker 作用域
WorkerGlobalScope对象在某种成都上来说是大于核心的js全局对象,
小于整个客户端的window对象
是worker的全局对象,具有js全局对象的方法
worker中调用postMessage方法 会触发Worker外部的一个message事件
worker外部传递的消息会转换成一个事件,并传递给onmessage事件处理程序
close 函数允许worker将自己终止
- importScripts
加载任何需要的库代码
接受多个url参数
是一个同步的方法,直到所有的脚本都已经载入并运行完成才会返回
文件系统API
var fs = requestFileSystemSync()
dom编程就是浏览器和用户之间的接口
dom对客户端js来说仅仅是一宿主对象
js从宿主环境获取的对象树就被称为宿主对象
全局对象在程序启动前就已经存在了
客户端js的全局对象被称作window对象
js 特点
解释型语言,直接在运行环境中执行代码
动态语言,不指定返回值和返回类型
基于原型的面向对象特性
变量的作用是给某一个值或是对象标注名称
函数是一种对象
函数是一种包含了可执行代码,并能够被其他代码调用的特殊的对象
对象:内存中的实体,是一个名称与值配对的集合,名称与值的被称为属性,对象也是属性的集合
java的对象是类的实例,js对象类似java的map
js具备一种称为原型链的构造,实现了类似继承的能力
js的属性值可以由函数指定
html 性能
- 减少http请求
- 使用cdn加速
- 避免空的src或href属性值
- 增加过期头
- 使用GZIP压缩
- 把Css放到头部
- 把js 放到尾部
- 避免使用css表达式
- 删除不使用的css语句
- 代码压缩
- 减少重绘
媒体查询
@media only screen and (min-width: 1366px) and (max-width: 2560px){
}