首页 > 其他分享 >小型聊天室

小型聊天室

时间:2023-08-08 23:55:21浏览次数:22  
标签:聊天室 小型 pageParams sessionStorage 存储 会话 Promise 页面

聊天室

思路

  • 登录页面

    • 通过数据库判断用户名、密码等是否输入正确

    • 匹配成功后跳转到聊天室页面

  • 聊天室主页面

    • 页面布局
      • 上(展示登录用户,在和谁聊天的提示)
      • 下左(在线用户)
      • 下右 (展示消息内容,聊天框)
    • 通过点击左侧不同的名字展示不同的对话内容
    • 功能:发送消息,发送文件
  • 服务端页面

    • 上方是在线人员,可进行管理人员下线
    • 下方是聊天信息的大致展示

知识

sessionStorage

sessionStorage存储在客户端,不与服务器进行通信

只能存储字符串类型,其他格式要转换格式后进行存储

//存储字符串 sessionStorage.setItem(key,value)
var page = 'newPage'
sessionStorage.setItem('page',page)

//存储对象
var pageParams={
      type:1,
      name:'子兮',
    }
sessionStorage.setItem('pageParams',JSON.stringify(pageParams))

//获取
let page=sessionStorage.getItem('page')
let pageParams = JSON.parse(sessionStorage.getItem('pageParams'))

//移除
sessionStorage.removeItem('pageParams')
sessionStorage.removeItem('page')

sessionStorage、cookie、localstorage区分

cookie:储存在用户本地终端上的数据,是网站为了识别用户和跟踪会话而存储在用户本地终端中的文本数据。

sessionStorage:存储会话中的数据,这些数据只有在同一个会话当中的页面才可以访问,并且当会话结束之后数据也会跟着销毁。页面刷新或者恢复页面的时候都不会丢失或者被清空。

localSotrage:持久化的本地存储。除非是你主动删除数据,否则的话,数据是永远也不会过期的。

  • 共同点:都是保存在浏览器端、且同源的

  • 区别:

    1、存储空间:cookie存储空间最小、只有4kb、但是http请求中可以携带cookie,loacalstorage、sessionstorage存储空间5m或更大

    2、有效期:cookie不设置时间、关闭游览器销毁,sessionstorage关闭游览器(窗口或者标签页)销毁,loacalstorage不手动清除一直保留

    3、作用域:sessionStorage不在不同游览器窗口(标签页)共享、即使同源,cookie、localstorage在所有同源窗口之间共享

1、sessionStorage 属性允许你访问一个 session Storage 对象。它与 localStorage 相似。
2、不同之处在于 localStorage 里面存储的数据没有过期时间设置,而存储在 sessionStorage 里面的数据在页面会话结束时会被清除。
3、sessionStorage在页面会话在浏览器打开期间一直保持,并且重新加载或恢复页面仍会保持原来的页面会话。
4、不同tab之间就算相同url,sessionStorage也是不会共享的。sessionStorage只存在于当前会话中。
5、使用window.open或者点击链接跳转的页面,新页面的sessionStorage会拷贝老页面的。但两者之间并无关联,还是两个会话。

Pormise.all

​ promise.all用于处理多个异步操作的静态方法,可以实现发起多个异步请求,并在所有请求都完成后进行处理。

  • 当传入的 Promise 数组中的所有 Promise 对象都变为 fulfilled 状态时,返回的 Promise 对象会被 resolved。
  • 当所有对象都被resolved后,将执行.then()方法中的回调函数。
  • 如果其中任何一个 Promise 对象变为 rejected 状态,返回的 Promise 对象会被 rejected。因,在.catch()方法中可以捕获到任何一个请求发生错误的情况

var axiosRequests = [];
for (var name of this.onlineUser) {
	var userPictureRequest = axios.get("http://localhost:8080/chatRoom/user/getPicture?name=" + name);
    axiosRequests.push(userPictureRequest);
    userPictureRequest.then(resp => {
        //相应回后触发的事件
        
    }).catch(error => {
        console.error(error);
    });
}
 Promise.all(axiosRequests)
     .then(() => {
     //循环内的所有请求响应结束后的事件
     
 }).catch((error) => {
     console.error(error);
 });

JS中Date类型

创建日期对象

var date = new Date();
getFullYear();//获取四位数的年份
getMonth();//获取日期中的月份
		   //0表示一月,11表示十二月
getDate();//返回日期月份中的天数(1-31)
getDay();//返回日期中的星期几
		 //0表示星期日
getHours()//返回日期中的小时数(0-23)
getHours()//返回日期中的小时数(0-23)
getHours()//返回日期中的小时数(0-23)

标签:聊天室,小型,pageParams,sessionStorage,存储,会话,Promise,页面
From: https://www.cnblogs.com/blesscreek/p/17615733.html

相关文章

  • MiniRBT中文小型预训练模型:结合了全词掩码技术和两段式知识蒸馏技术,加快推理速度
    MiniRBT中文小型预训练模型:结合了全词掩码(WholeWordMasking)技术和两段式知识蒸馏(KnowledgeDistillation)技术,加快推理速度在自然语言处理领域中,预训练语言模型(Pre-trainedLanguageModels)已成为非常重要的基础技术。为了进一步促进中文信息处理的研究发展,哈工大讯飞联合实验......
  • TinyML:下一轮人工智能革命——看来边缘计算 AI模型小型化也是一大领域
    TinyML:下一轮人工智能革命 由NASA引领的小型化风潮已经席卷了整个消费电子产品产业。现在,一个领针中即可保存全部贝多芬作品,并可使用耳机聆听。———天体物理学家、科学评论员NeildeGrasseTyson……超低功耗嵌入式设备的普及,以及用于微控制器的TensorFlowLite等嵌入式机......
  • 基于C语言设计的小型图形软件系统
    完整资料进入【数字空间】查看——搜索"writebug"一、实验内容:综合运用所学,开发一个小型图形软件系统,开发的图形软件系统可通过菜单实现以下功能:几何建模功能:利用简单的动画和交互技术演示基本图元绘制算法(直线、曲线)所学算法、多边形填充算法和裁剪算法(不能用OpenGL自带函数)的实......
  • Android基于XMPP Smack openfire 开发的聊天室
    Android基于XMPPSmackopenfire开发的聊天室简介聊天室是人们进行实时沟通和交流的常见方式。而在移动应用开发中,实现一个聊天室功能是非常常见的需求。本文将介绍如何基于Android平台使用XMPPSmack库和Openfire服务器开发一个简单的聊天室应用。准备工作在开始开发之前,确保......
  • 小型电商平台架构
    小型电商平台架构引言在当今的数字时代,电商平台已经成为了人们进行购物的主要渠道之一。为了构建一个高效、稳定的电商平台,良好的架构设计是至关重要的。本文将介绍一个小型电商平台的架构设计,并提供相关的代码示例。架构设计一个典型的小型电商平台可以分为以下几个主要的组件......
  • Go语言Revel框架 的聊天室示例解读
    安装Revel框架请参看下面这篇文章:《Go语言Revel框架准备工作》 运行聊天室例子运行聊天室例子只需执行下面命令:$revelrungithub.com/robfig/revel/samples/chat$revelrungithub.com/robfig/revel/samples/chat~~revel!http://robfig.github.com/revel~2013/03/2511:54:4......
  • Go语言Revel框架 聊天室三种通讯方式分析
    三种机制的切换首页相关的网页请求路由如下:#LoginGET  /GET  /demo                 Application.EnterDemo首页显示输入昵称和三种聊天技术选择入口,选择后form提交到Application.EnterDemo页面。跳转到三种具体的聊天技术页面是通......
  • WebSocket搭建一个简单的聊天室
    这个例子比较简单:只有一个聊天室,大家进入的都是同一个聊天室。 没有用户登录,用户登录直接根据id给出匿名用户。程序截图,UI我直接用的 https://github.com/Niessy/websocket-golang-chat这里给的例子的Html代码。                  服务器端Golang代码:package......
  • 工业5G网关小型化有哪些优势?微型5G网关的优势?
    小型化、微型化是工业通信终端的发展趋势之一,例如佰马BMG2300系列微型5G网关,通过高集成化的芯片选型和设计,体积已经缩小到还没有一个手掌大。那么工业5G网关小型化微型化有哪些好处呢?本篇就简单介绍一下。  1、更广泛的适用性:微型化的佰马BMG2300工业5G网关能够安装在更小......
  • 红外雨量计(光学雨量传感器)在小型气象站的应用
    红外雨量计(光学雨量传感器)在小型气象站的应用红外雨量计是一种常见的气象测量设备,也是小型气象站中一个重要的组成部分。随着现代科技的发展,红外雨量计逐渐取代了传统的测雨器,成为广大气象从业人员的首选设备。本文将介绍红外雨量计在小型气象站的应用。 一、红外雨量计的原......