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日

相关文章

  • 7个有用的jQuery代码片段分享

    下面是详细的攻略: 7个有用的jQuery代码片段分享 1. 向上滚动触发动画 这段代码可以实现在滚动页面时,当元素到达页面顶部时触发动画。具体步骤如下: // 监听页面滚动事件 $(window).scroll(function() { // 获取元素的位置信息 var element = $(‘#target’); var elementPosition…

    jquery 2023年5月28日
    00
  • jQWidgets jqxKnob endAngle属性

    jQWidgets jqxKnob endAngle属性攻略 jQWidgets 是一个基于 jQuery 的 UI 组件库,提供了丰富的 UI 组件和工具可于创建现代化 Web 应用程序。 jqxKnob 旋钮,用于可视化调整数值。本攻略将详细介绍 jqxKnob 的 endAngle 属性,该属性用于设置旋钮的结束角度。 endAngle 属性 jqxK…

    jquery 2023年5月10日
    00
  • jQuery实现获取动态添加的标签对象示例

    使用jQuery获取动态添加的标签对象的示例攻略如下: 1. 使用on()方法实现事件委托 动态添加的标签对象在文档准备就绪时,是不存在的,因此我们需要通过事件委托的方式来监听这些标签的新增和操作事件。常用的是使用on()方法来实现事件委托,代码示例如下: $(document).on(‘click’, ‘.dynamic-tag’, function(){…

    jquery 2023年5月28日
    00
  • jQWidgets jqxToolBar addTool()方法

    以下是关于 jQWidgets jqxToolBar 组件中 addTool() 方法的详细攻略。 jQWidgets jqxToolBar addTool() 方法 jQWidgets jqxToolBar 组件 addTool() 方法用于向工具栏中添加工具。该方法接受一个对象参数,该对象包含要添加的工具的属性。 语法 $(‘#toolbar’).jqx…

    jquery 2023年5月11日
    00
  • jQWidgets jqxDropDownList enableAt()方法

    jQWidgets jqxDropDownList enableAt()方法详解 jQWidgets是一个基于jQuery的UI组件库,提供了丰富UI组件和工具包。jqxDropDownList是Widgets组件的组件。本文将详细介绍jqxDropDownList的enableAt()方法,包括用法、语法和示例。 enableAt()方法的基本语法 ena…

    jquery 2023年5月10日
    00
  • 一步一步教你写一个jQuery的插件教程(Plugin)

    当我们需要在网页中实现一些特定的功能或者效果时,经常会选择使用jQuery插件来帮助我们完成。我们可以通过自己编写jQuery插件的方式来实现这些目标,也可以通过使用其他人编写的jQuery插件库来实现。 本篇教程将从头开始,带领大家学习如何编写jQuery插件。下面我们将按照以下步骤进行讲解: 一、确定插件的功能和名称 在决定编写一个jQuery插件之前,…

    jquery 2023年5月28日
    00
  • jQuery UI Button option()方法

    jQuery UI 的 Button 组件提供了一个 option() 方法,该方法用于获取或设置 Button 实例的选项。在本教程中,我们将详细介绍 Button 的 option() 方法的使用方法。 option() 方法基本语法如下: $( ".selector" ).button( "option", op…

    jquery 2023年5月11日
    00
  • jQWidgets jqxToolBar getTools()方法

    以下是关于 jQWidgets jqxToolBar 组件中 getTools() 方法的详细攻略。 jQWidgets jqxToolBar getTools() 方法 jQWidgets jqxToolBar 组件 getTools() 方法用于获取工具栏中的所有工具。该方法不接受任何参数,返回一个包含所有工具的数组。 语法 $(‘#toolbar’).…

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