下面是关于“JS页面获取session值,作用域和闭包学习笔记”的完整攻略:
JS页面获取session值
什么是session
session 是服务器端用来存储用户会话信息的一种机制,用来区分每个用户,通常使用 cookie 把 sessionID 保存在客户端。
如何获取session值
通过使用 Web 浏览器发送的 HTTP 请求,服务器生成 sessionID 并将其保存在服务器端的存储设备中,同时将 sessionID 发送给浏览器。浏览器接收到 sessionID 后,将其保存在本地存储设备中。下次该用户向同一个服务器发出请求时,浏览器会自动将 sessionID 发送过去,服务器对该 sessionID 进行识别,从而得到该用户的会话信息。在 JavaScript 中获取 session 值主要有以下两种方式:
通过服务器端获取
因为 session 信息是保存在服务器端的,所以通过服务器端来获取 session 值是最直观的方式。当用户向服务器发送请求时,服务器通过识别客户端发送过来的 sessionID 来获取用户的 session 值。一般情况下,服务器端会将 session 值保存在变量或对象中,通过将值返回给客户端来达到获取 session 值的效果。
通过客户端获取
因为 sessionID 是保存在客户端的 cookie 中的,所以也可以通过客户端获取 session 值。通过 JavaScript 代码获取 cookie 值,从而得到 sessionID,再使用 Ajax 等技术把 sessionID 发送给服务器即可。
示例
以下是一个通过服务器端获取 session 值的示例:
// 服务器端代码
const express = require('express')
const session = require('express-session')
const app = express()
app.use(session({
secret: 'my_session_secret',
resave: false,
saveUninitialized: true
}))
app.get('/', (req, res) => {
req.session.username = 'Jack'
res.send('设置 session 成功')
})
app.get('/get_session', (req, res) => {
res.send(`当前 session 的值为: ${req.session.username}`)
})
app.listen(3000, () => console.log('服务器已启动,监听端口 3000'))
客户端访问 http://localhost:3000/get_session 即可获取 session 的值。
作用域和闭包学习笔记
作用域
JavaScript 中存在两种作用域:全局作用域和函数作用域。全局作用域中的变量可被整个程序访问,而函数内定义的变量只能在该函数内部访问。
闭包
闭包是指函数和函数内部能访问到的变量的总和,即函数和所在词法环境的综合体。闭包能保持状态和数据的完整性,因此在 JavaScript 中十分重要。
示例
以下是一个闭包的示例:
function outerFunction(outerVariable) {
function innerFunction(innerVariable) {
console.log('变量 outerVariable 的值:', outerVariable)
console.log('变量 innerVariable 的值:', innerVariable)
}
innerFunction('innerVariable 的值')
}
outerFunction('outerVariable 的值')
运行结果如下:
变量 outerVariable 的值: outerVariable 的值
变量 innerVariable 的值: innerVariable 的值
以上就是“JS页面获取 session 值,作用域和闭包学习笔记”的完整攻略啦!
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS页面获取 session 值,作用域和闭包学习笔记 - Python技术站