网页开发中,向服务端提交数据是一个基本功能,工作中会大量用 xhr/fetch 的 api 或者 axios 这种封装了一层的库来做。
可能大家都写过很多 http/https 相关的代码,但是又没有梳理下它们有哪几种呢?
其实通过 http/https 向服务端传递数据的方式,基本可以分为 5 种:url param、query、form-urlencoded、form-data、json。
Just So So ...
网页开发中,向服务端提交数据是一个基本功能,工作中会大量用 xhr/fetch 的 api 或者 axios 这种封装了一层的库来做。
可能大家都写过很多 http/https 相关的代码,但是又没有梳理下它们有哪几种呢?
其实通过 http/https 向服务端传递数据的方式,基本可以分为 5 种:url param、query、form-urlencoded、form-data、json。
Debugger 是前端开发很重要的一个工具,它可以在我们关心的代码处断住,通过单步运行来理清逻辑。而 Debugger 用的好坏与断点打得好坏有直接的关系。
Chrome Devtools 和 VSCode 都提供了 Debugger,它们支持的打断点的方式有 6 种。
1,boolean 布尔类型
let isDone:boolean = false;
2,number 数字类型
let num10:number = 123; //十进制
let num16:number = 0xf00d; //十六进制
let num2:number = 0b1010; //二进制
let num8:number = 0o710; //八进制
3,string 字符串类型
var str:string = "dongchuanmin";
let str2:string = `dcm ${num10}`; //插值语法
用法:
1,存储内容大小一般支持5MB左右(不同浏览器可能还不一样)
2,浏览器端通过 Window.sessionStorage 和 Window.localStorage 属性来实现本地存储机制。
3,相关API:
A,
xxxxxStorage.setItem('key', 'value');
该方法接受一个键和值作为参数,会把键值对添加到存储中,如果键名存在,则更新其对应的值。
B,xxxxxStorage.getItem('person');
该方法接受一个键名作为参数,返回键名对应的值。
C,xxxxxStorage.removeItem('key');
该方法接受一个键名作为参数,并把该键名从存储中删除。
D,xxxxxStorage.clear();
该方法会清空存储中的所有数据。
//监听扫码枪
function ListenScanCodeGun() {
var barCode = '';
var lastTime = 0;
function ClearBarCode() {
barCode = '';
lastTime = 0;
}
window.addEventListener('keypress', function (e) {
console.log("监听开始");
e = e || window.event;
var currCode = e.keyCode || e.which || e.charCode;
var currTime = new Date().getTime();
if (lastTime > 0) {
if (currTime - lastTime <= 100) {
barCode += String.fromCharCode(currCode);
}
else if (currTime - lastTime > 500) {
// 输入间隔500毫秒清空
ClearBarCode();
}
}
else // 第一次按键
{
barCode = String.fromCharCode(currCode);
}
lastTime = currTime;
if (currCode == 13) // 回车
{
if (barCode && barCode.length >= 8) {
// 这里得到码,做下一步业务处理
console.log("最终编号:" + barCode);
}
// 回车输入后清空
ClearBarCode();
}
});
}
上面currTime - lastTime <= 100
里的100毫秒根据你的扫码枪实际情况进行调整,barCode && barCode.length >= 8
里的8位数根据你的业务编码规则进行调整。