History API
提供操作控制浏览器会话历史,维护会话栈(session stack)的能力
界面允许操作浏览器会话历史记录,即在加载当前页面的选项卡或框架中访问的页面。
浏览器文境
共享知识
将数据的集合(document)呈现(Present)给用户
document周边就是知识(Browser Content),里面包含打开哪个网址,背景知识,上下文。
会话历史
(session Stack)
栈的结构就是包含未来被展示的document还有正在展示中的document,以及历史的document。
history.go()
输入一个 0 重新刷新当前页面
+0就是下一个页面
-0就是历史页面
但是不会改变会话栈
window.location.href()
back or forward
history.back 返回
history.forward 下一个
pushState(state,title,url)
新增一个状态(State)到会话栈(session Stack)
state 状态数据,可以通过history.state获取,一个属性数据,在当前会话可以用到的。
history.pushSate({name:'456'},null,'/123')
//通过 history.state 访问这个属性
=
history.pushSate(null,null,'/123?name=456')
title 预留字段,多数浏览器不使用,基本不用,null
url 新状态的url
写入就会替换将来的页面,不发生页面跳转,但是改变url。
可以用来做前端渲染,发现url改了,自己去改变网址,没必要走服务端
eplaceState(state,title,url)
替换会话栈(sessio stack)中当前状态
state 状态数据,可以通过history.state获取,一个属性数据,在当前会话可以用到的。
title ..
url ..
例子,就是如果你有一个付款的页面,然后付完就要跳首页,但是不会让他在回到这个付款页面,所以用这个可以把当前的网址替掉。
用pushstate处理的页面,用go不会跳转页面,都会让你自己去处理
实战服务端路由
获取文件位置,然后去渲染页面
拼接字符
用Cluster启动多个实例进行负载均衡
const numCPUs = require('os').cpus().length;
通过node os判断电脑的cpu核数
判断核数,只要运行最大减一,既可以保证最大利用
node.js强项在于I/o,弱于多核系统利用。假如说我们的服务器是64核的,我们启动63个进程,因为我们不能让服务器闲置,所以启动核数减1
操作系统提供一个负载均衡
就是说你有100万个请求进入,进入TCP/IP开始分流,然后流量会平均打到端口上,这个是操作系统的本事。也就是说我电脑16核,那么会将这100万分成16份去操作
父子进程之间有关系但是他们是平行的