js
文章平均质量分 59
果果ha
向着光奔跑~
展开
-
强缓存和协商缓存
1、一个问题引出强缓存和协商缓存1.1 问题背景页面上一个离线工具下载:离线工具下载到本地的名称是服务端在响应头content-disposition中定义的,规则是edge地址+端口; 单机版修改完edge端口(下载链接地址不变),下载的离线工具还是修改前的名称,接口返回304; 预期修改完端口,下载的离线工具是新edge端口的文件问题原因:修改完端口,不清理缓存的情况下,点击下载链接请求下载资源,其实这个文件只是文件名进行了变更,其内容不变,所以使用了缓存的文件,导致下载.原创 2021-03-24 11:52:28 · 233 阅读 · 0 评论 -
防抖和节流的性能优化
一、防抖和节流的概念防抖:指触发事件后在n秒内事件只能执行一次,如果在n秒内又触发了事件,则会重新计算函数执行时间。 节流:指连续触发事件,但是在一段时间内只能执行一次。二、防抖和节流函数//简单防抖函数var box = document.querySelector('.box');var testDebounce = debounce(move, 1000);box.onmousemove = testDebounce;function move(ev) { conso原创 2021-03-07 22:43:53 · 172 阅读 · 0 评论 -
计算文件MD5和SHA1
一、文件md5计算:参考:https://github.com/forsigner/browser-md5-file1、引入 spark-md5npm install --save spark-md52、创建 md5.jsimport SparkMD5 from 'spark-md5'export default class BMF { md5(file, md5Fn, progressFn) { this.aborted = false this.progr原创 2020-12-04 17:35:46 · 777 阅读 · 0 评论 -
前端正则表达式记录
正则表达式定义字符\d:数字(\d\d:匹配两个,以此类推) \D:非数字\b:独立部分 \B:非独立部分\s:空格 \S:非空格\w:字符(包含数字,字母,下划线) \W:非字符(汉字是非字符)/g:全局匹配i:不区分大小写+:至少出现一次$:必须以谁结束. :匹配任意字符\. :匹配真正的点*:至少0个,最多不限[]:或^:非/ ^ / 或者以谁开始 /[^ ]/正则表达式方...原创 2018-03-25 15:05:13 · 368 阅读 · 0 评论 -
改变this指针的方法
javascript的一大特点:函数存在 定义时上下文 运行时上下文,并且上下文是可以改变的。例1:function f(){ console.log(this);}f();//windowcall、apply例2:var aa={ name:'zdn', fun:function(){ console.log(this.name); }}v...原创 2018-03-20 15:43:21 · 836 阅读 · 0 评论 -
(原生JS) 图片无缝滚动、图片转化、轮播图、折叠效果
1.图片无缝滚动(原生JS)<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>无缝滚动</title> <style type="text/css"&原创 2018-03-17 00:37:32 · 1729 阅读 · 0 评论 -
数组方法
数组创建JavaScript中创建数组有两种方式,第一种是使用 Array 构造函数:var arr1 = new Array(); //创建一个空数组var arr2 = new Array(20); // 创建一个包含20项的数组var arr3 = new Array("lily","lucy","Tom"); // 创建一个包含3个字符串的数组创建数组的第二种基本方式是使用数组字面量表示法...原创 2018-02-27 23:37:12 · 362 阅读 · 0 评论 -
字符串方法
1.concat将两个或多个字符的文本组合起来,返回一个新的字符串。var a = "hello";var b = ",world";var c = a.concat(b);alert(c); //c = "hello,world"2.indexOf返回字符串中一个子串第一处出现的索引(从左到右搜索)。如果没有匹配项,返回 -1 。var index1 = a.indexOf("l"); //in...原创 2018-02-27 23:22:41 · 330 阅读 · 0 评论 -
js异步编程的方法和原理
Javascript语言的执行环境是"单线程"(single thread)。所谓"单线程",就是指一次只能完成一件任务。如果有多个任务,就必须排队,前面一个任务完成,再执行后面一个任务,以此类推。——这种模式的好处是实现起来比较简单,执行环境相对单纯;坏处是只要有一个任务耗时很长,后面的任务都必须排队等着,会拖延整个程序的执行。常见的浏览器无响应(假死),往往就是因为某一段Javascript代...原创 2018-03-07 00:48:22 · 1669 阅读 · 1 评论 -
js添加事件、移除事件、阻止冒泡、阻止浏览器默认行为等写法(兼容IE/FF/CHROME)
js添加事件/移除事件/阻止冒泡/阻止浏览器默认行为写法(兼容IE/FF/CHROME)1.添加事件var addEvent = function( obj, type, fn ) { if (obj.addEventListener) obj.addEventListener( type, fn, false ); else if (obj.attachEvent) { ...原创 2018-02-11 00:33:43 · 382 阅读 · 0 评论