一些技术的介绍

一、token:“令牌”,是服务端生成的一串字符串,作为客户端进行请求的一个标识

JWT(json web token) 的原理是,服务器认证以后,生成一个 JSON 对象,发回给用户

        前景:在程序中,会话跟踪是很重要的事情。理论上,一个用户的所有请求操作都应该属于同一个会话,而另一个用户的所有请求操作则应该属于另一个会话,二者不能混淆。而Web应用程序是使用HTTP协议传输数据的。HTTP协议是无状态的协议。一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接。这就意味着服务器无法从连接上跟踪会话。所以需要给客户端们颁发一个“通行证”,这样服务器就能从通行证上确认客户身份了。

  • cookie:优点是节省服务器空间,缺点不安全。一般用于存储少量的不太敏感的数据
  • session:优点是安全,缺点需要服务器空间(服务器重启,则数据丢失), 是一种最常见的解决方案。而这个时候,我们用token就能更好 

二、闭包:函数嵌套函数,内部函数可以引用外部函数的参数和变量。参数和变量不会被垃圾回收机制收回。

 特点:

  1. 全局变量不被释放
  2. 局部变量无法被外部访问

三、Node.js是一个开源和跨平台的JavaScript运行时环境。

        Node.js应用程序在单个程序中运行,无需为每个请求创建新的线程。Node.js在其标准库中提供了一组异步的I/O原语,以防JavaScript代码阻塞,通常,Node.js中的库是使用非阻塞范式编写的,使得阻塞行为成为异常而不是常态。Node.js应用程序在单个程序中运行,无需为每个请求创建新的线程。Node.js在其标准库中提供了一组异步的I/O原语,以防JavaScript代码阻塞,通常,Node.js中的库是使用非阻塞范式编写的,使得阻塞行为成为异常而不是常态。

四、jQuery:是JavaScript的一个工具库(封装好的JavaScript函数),可以直接在程序中进行调用。jQuery设计的宗旨是“写更少的代码,做更多的事情”。jQuery库封装了JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档操作、事件处理、动画设计和Ajax交互

优点:

  1. 占用空间少:缩小并压缩后的jQuery文件只有30KB
  2. 符合CSS3规范:支持CSS3选择器查找元素以及样式属性操作
  3. 跨浏览器:兼容各种主流浏览器,如IE、Chrome、Firefox、Safari、Opera等

特点:

  1. 快速获取文档元素
  2. 提供漂亮的页面动态效果
  3. 创建AJAX无刷新网页
  4. 更改网页内容
  5.  增强的事件处理

基础语法:$(selector).action()

  • 美元符号定义 jQuery
  • 选择符(selector)“查询"和"查找” HTML 元素
  • jQuery 的 action() 执行对元素的操作

示例(“p”为p标签、“.p”则为class名为“p”的):$("p").click();

 五、Sass:(Syntactically Awesome Stylesheets)是一个CSS预处理器,是 CSS 扩展语言,可以帮助我们减少 CSS 重复的代码,节省开发时间。

  • 变量:存储样式信息。比如一个样式在页面的多个地方使用,就可以先将该样式的值赋给一个变量,后面直接使用变量即可

语法 $变量名:样式值;
使用 $变量名;     

// .scss文件  Sass后缀名为scss
$dark: #000;
.box {
	color: $dark;
}
  •  嵌套

选择器嵌套:子元素在父元素样式的一对大括号{}内 如:ul { li { } }

伪类嵌套:语法-----&:hover { }

混合mixin:相当于已经定义好了一类样式,可以在任何地方重复的使用它

        ①不含参数:语法---@mixin name { css样式 }   使用---@include name

        ②含参数:语法---@mixin name ($param1,$param2, ...) { css样式 }  使用---@include name(样式1,样式2,…)

// .scss文件  这里我们希望鼠标悬停a的文本颜色改变
.box {
	a {
		&:hover {
			color: red;
		}
	}
}
// 生成的css代码
.box a:hover {
  color: red;
}
// .scss文件   定义一个mixin
@mixin box-style {
	width: 200px;
	height: 200px;
	background: #000;
}
// 使用
.box {
	@include box-style;
	// 当然也可以继续在这里添加样式
	border-radius: 5px;
}
---------------------------------
$box-width: 200px;
$box-height: 200px;
// 定义一个mixin
@mixin box ($width, $height) {
	width: $width;
	height: $height;
}
// 使用
.box {
	// 1. 第一种用法, 直接将css样式写入
	@include box(200px, 200px);

	// 2. 第二种, 将定义好的变量写入
	@include box($box-width, $box-height);
}

六、ES: (Elasticsearch)是一个使用java语言编写的并且基于Lucene编写的搜索引擎, 他提供了分布式的全文搜索服务, 还提供了一个RESTful风格的web接口, 官方还对多种语言提供了相应的API。

  • ES6:添加了块级作用域的概念 let声明变量(块级作用域),let是更完美的var,它声明的全局变量不是全局属性widow的变量,这便解决了for循环中变量覆盖的问题 const声明常量(会计作用域)。且字符串新增方法
let str = 'happy';
console.log(str.includes('ha')) // true
console.log(str.repeat(3)) // 'happyhappyhappy'
console.log(str.startsWith('ha')); // true,参数2为查找的位置
console.log(str.endsWith('p', 4)); // true,参数2为查找的字符串长度

        Promise:是一个构造函数,将then会作为callback使用,避免回调地狱的出现

// resolve、reject的使用
function getNum() { 
  const randomNum = Math.ceil(Math.random() * 10);
  return new Promise((resolve, reject) => {
    if (randomNum > 5) {
      resolve('大于5');
    } else {
      reject('小于5');
    }
  })
}
getNum().then((result) => {
  console.log('success', result);
  
}).catch((err) => {
  console.log('err', err);
});
  • ES7:新增求幂运算符(**)、Array.prototype.includes()方法、函数作用域中严格模式的变更。
  • ES8:async、await异步解决方案,是Generator(是一个分段执行任务,通过状态指针next分布执行任务)的语法糖。async/await是写异步代码的新方式,以前的方法有回调函数和Promise。相比于Promise,它更加简洁,并且处理错误、条件语句、获取中间值都更加方便。
async function asyncFunc(params) {
  const result1 = await this.login()
  const result2 = await this.getInfo()
}
  • ES9:异步迭代器(for-await-of) ----- 循环等待每个Promise对象变为resolved状态才进入下一步。 
  • ES10:Object.fromEntries() 把键值对列表转换为一个对象,这个方法是和 Object.entries() 相对的。

七、websocket:是html5提供的一种浏览器与服务器进行全面双工通讯的网络技术,是基于TCP传输的应用层协议是一种持久化的协议。

  • 其最大的特点是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话。websocket借用http来完成一次握手,只需要一次HTTP握手,服务端就能一直与客户端保持通讯,直到关闭连接

八、socket.io:是一个WebSocket库,包括了客户端的js和服务器端的nodejs,它的目标是构建可以在不同浏览器和移动设备上使用的实时应用。

特点:

  1. 易用性:socket.io封装了服务端和客户端,使用起来非常简单方便
  2. 跨平台:socket.io支持跨平台,这就意味着你有了更多的选择,可以在自己喜欢的平台下开发实时应用
  3. 自适应:它会自动根据浏览器从WebSocket、AJAX长轮询、Iframe流等等各种方式中选择最佳的方式来实现网络实时应用

九、Vue-cli:vue脚手架是基于Vue的应用开发提供的一个标准的脚手架工具.为应用搭建基础的框架结构,提供插件、开发服务、Preset、构建打包功能。

        前提:安装了node.js才有使用npm ,才能安装vue-cli

十、Nuxt.Js:

十一、Express:


未完待续... 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值