了解客户端路由和服务端路由的原理

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份去操作
父子进程之间有关系但是他们是平行的

Flask是一个使用Python编写的轻量级Web应用框架,它非常灵活且易于上手,适合开发小型和中型的应用。下面是一个基本的Flask应用程序的搭建过程,分为客户端服务端两个部分。 **服务端搭建** 首先,你需要安装Flask。可以通过Python的包管理器pip来安装: ```bash pip install flask ``` 然后,创建一个Python文件,比如`app.py`,在这个文件中编写你的服务端代码: ```python from flask import Flask, jsonify app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello, World!' if __name__ == '__main__': app.run(debug=True) ``` 上面的代码创建了一个Flask应用,并定义了一个路由`/`,当访问这个路由时,会返回字符串`Hello, World!`。`app.run(debug=True)`启动了Flask的开发服务器,并开启了调试模式。 **客户端搭建** 客户端可以是任何能够发起HTTP请求的工具或程序。在浏览器中直接访问`http://localhost:5000/`,可以看到服务端返回的`Hello, World!`消息。如果你需要在其他客户端程序中发起请求,可以使用如`requests`库来实现: 首先安装requests库: ```bash pip install requests ``` 然后编写客户端代码: ```python import requests response = requests.get('http://localhost:5000/') print(response.text) # 这将输出 'Hello, World!' ``` 这段代码使用`requests.get`方法发起GET请求到服务端的根路由,并打印返回的响应文本。 **注意事项** 1. 在开发环境中,你可以使用Flask自带的开发服务器。但请注意,在生产环境中,你应该使用更健壮的WSGI服务器,如Gunicorn或uWSGI。 2. Flask的路由可以非常复杂,支持变量规则、动态规则等,可以根据不同的URL调用不同的函数。 3. Flask支持模板渲染,可以利用Jinja2模板引擎来生成动态的HTML页面。 4. Flask还支持RESTful API设计,可以通过不同的HTTP方法(如GET、POST、PUT、DELETE等)来处理不同的请求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值