JS页面获取 session 值,作用域和闭包学习笔记

下面是关于“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技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • jQuery grep()方法详解及实例代码

    jQuery grep()方法详解及实例代码 什么是grep()方法 grep()是jQuery中的一个工具方法,用于在数组中查找元素并返回一个新数组。 grep()方法接受一个数组和一个回调函数作为参数。回调函数将被称为数组中的每个元素。如果回调函数返回true,那么元素将被包含在返回的新数组中,否则将被忽略。 示例说明 示例1 以下是一个示例,它使用gr…

    jquery 2023年5月27日
    00
  • 如何使用jQuery创建一个在鼠标移动时弹出的div,并在点击时停留

    当使用jQuery创建一个在鼠标移动时弹出的div,并在点击时停留时,我们可以使用以下步骤: 创建一个新的div元素,并设置其样式属性,例如位置、背景颜色、边框、内边距等。 将div添加到文档中的元素中,例如body元素。 为div附加事件处理程序,以便在鼠标移动时显示div,并在点击时停留。 在事件处理程序中,使用jQuery函数来设置div的位置和可见性…

    jquery 2023年5月9日
    00
  • AngularJS自定义指令详解(有分页插件代码)

    AngularJS自定义指令是AngularJS框架中常用的一个功能,它允许我们创建自己的HTML标签或属性,并在页面上实现相应的逻辑。在本文中,我将会详细介绍AngularJS自定义指令的基本语法和用法,并通过一个分页插件的代码示例,演示如何自定义指令实现可复用性和简化页面逻辑的效果。 一、AngularJS自定义指令的语法 在AngularJS中,我们可…

    jquery 2023年5月27日
    00
  • jQWidgets jqxGrid removesort()方法

    以下是关于“jQWidgets jqxGrid removesort()方法”的完整攻略,包含两个示例说明: 方法简介 removesort() 方法是jQWidgets jqxGrid` 控件的一个方法,用于移除表格的排序条件。该方法的语法如下: $("#jqxGrid").jqxGrid(‘removesort’); 在上述法中,#j…

    jquery 2023年5月10日
    00
  • jQWidgets jqxListBox改变事件

    jQWidgets jqxListBox改变事件详解 jQWidgets是一个基于jQuery的UI组件库,提供了丰富UI组件工具包。jqxListBox是其中之一,本文将详细介绍jqxListBox的改变事件,包括定义、语法和示例。 改变事件的定义 jqxListBox的改变事件在列表框的选中项发生变化时触发。当用户选择列表框中的项时,改变事件会被触发。 …

    jquery 2023年5月10日
    00
  • 如何使用jQuery将一个jQuery对象追加到所有段落

    在jQuery中,我们可以使用.appendTo()函数将一个jQuery对象追加到所有段落元素中。以下是两个示例,演示如何使用jQuery将一个jQuery对象追加到所有段落元素中: 示例1:追加文本 以下一个示例,演示如何使用.appendTo()函数将文本追加到所有段落元素中: <!DOCTYPE html> <html> &l…

    jquery 2023年5月9日
    00
  • Jquery选择器中使用变量实现动态选择例子

    首先我们来讲解一下JQuery选择器中使用变量实现动态选择的方法,步骤如下: 定义一个变量存储选择器 var selector = "#id"; 使用变量作为选择器 $(selector).css("color","red"); 其中,$(selector)表示使用变量selector来选择对应的H…

    jquery 2023年5月28日
    00
  • JS中使用sort结合localeCompare实现中文排序实例

    要实现中文排序,JS中可以使用sort方法结合localeCompare方法。下面介绍一下具体的实现过程。 1. sort方法结合localeCompare方法的使用 sort方法可以对数组进行排序操作,可以自定义排序方法。而localeCompare方法可以比较两个字符串之间的顺序关系,包括中文字符。 sort方法默认会按照字符串的字符编码进行排序。而中文…

    jquery 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部