javascript
文章平均质量分 52
单眼皮的小熊
这个作者很懒,什么都没留下…
展开
-
发布订阅模式
// 发布订阅中心, on-订阅, off取消订阅, emit发布, // 内部需要一个单独事件中心caches进行存储;interface CacheProps { [key: string]: Array<(data?: unknown) => void>}class Observer { private caches: CacheProps = {} // 事件中心 on(eventName: string, fn: (data?: unknown) =>.原创 2022-04-15 15:54:17 · 1007 阅读 · 0 评论 -
如何防止重复请求
如何防止重复发送请求?问题:业务需求中,经常有只需要请求一次,以防止用户重复点击行为导致的触发重复请求。传递请求方法(执行后返回promise),返回一个新方法。连续触发时,只执行一次。// 示例let count = 1;let promiseFunction = () => new Promise(rs => window.setTimeout(() => { rs(count++); }) );let firstFn = fi.原创 2022-04-02 09:29:40 · 2384 阅读 · 0 评论 -
安装多个版本的node
老是遇到不同的项目需要不同的node版本(不然会出现各种奇怪的问题),故想着怎样切换不同的node版本更方便呢?1、首先下载不同版本的node:https://npm.taobao.org/mirrors/node/2、然后在安装位置新建不同版本的文件夹注意:我这里是已经安装完成,新建文件夹的时候如新建文件夹名为:10.9,安装完成后重命名为10.9.0,不然安装另一个版本的时候会自动删除之前版本的内容,每一个文件夹均有此操作3、开始安装一个版本一个版本的安装到对应版本的文.原创 2021-08-25 14:12:51 · 2171 阅读 · 0 评论 -
ES6的开发环境搭建
建立工程目录:先建立一个项目的工程目录,并在目录下边建立两个文件夹:src和distsrc:书写ES6代码的文件夹,写的js程序都放在这里。dist:利用Babel编译成的ES5代码的文件夹,在HTML页面需要引入的时这里的js文件。编写index.html:文件夹建立好后,我们新建一个index.html文件。 Document原创 2018-01-09 21:18:42 · 310 阅读 · 0 评论 -
AJAX处理XML文件
首先XML文件内容cd.xml:<?xml version="1.0" encoding="ISO-8859-1"?><!-- Edited by XMLSpy® --><CATALOG> <CD> <TITLE>Empire Burlesque</TITLE> <<ARTIST></ARTIST>>Bob Dylan</ARTIST> <原创 2017-05-15 15:25:49 · 394 阅读 · 0 评论 -
AJAX处理php文件示例
首先配置数据库(学习用的wrap的mysql)示例:create database ajax charset=utf8;use ajax;create table user( id int auto_increment comment 'id', firstname varchar(20) not null, lastname varchar(20) not null ,原创 2017-05-15 22:24:56 · 399 阅读 · 0 评论 -
JavaScript语言精粹阅读笔记##
语法基础原创 2017-03-27 19:06:19 · 277 阅读 · 0 评论 -
AJAX的跨域问题
首先说明出现跨域问题的情况: 由于在工作中需要使用AJAX请求其他域名下的请求,但是会出现拒绝访问的情况,这是因为基于安全的考虑,AJAX只能访问本地的资源,而不能跨域访问。 比如说你的网站域名是aaa.com,想要通过AJAX请求bbb.com域名中的内容,浏览器就会认为是不安全的,所以拒绝访问。会出现跨域问题的几种情况: 1.如果跨域的时候再用原始的ajax(创建xhr对象,感知aja原创 2017-05-17 14:21:35 · 280 阅读 · 0 评论 -
iframe中父子页面跨域通讯
在非跨域的情况下,iframe中的父子页面可以很方便的通讯,在此不做描述。但是在跨域的情况下,父子页面是无法获取到对方的。一、跨域父传子,可以更改iframe的src,然后在子页面根据地址或参数做出相应的动作。二、子页面传递父页面方法1:otherWindow.postMessage(message, targetOrigin, [transfer]);otherWindow 其他窗口的一个引用,写的是你要通信的window对象。 例如:在iframe中向父窗口传递数据时,可以原创 2021-07-27 10:02:49 · 1814 阅读 · 0 评论 -
63段常用JS代码片段
1、all如果数组所有元素满足函数条件,则返回true。调用时,如果省略第二个参数,则默认传递布尔值。const all = (arr, fn = Boolean) => arr.every(fn);all([4, 2, 3], x => x > 1); // trueall([1, 2, 3]); // true2、allEqual判断数组中的元素是否都相等。const allEqual = arr => arr.every(val => v转载 2021-03-03 11:16:36 · 252 阅读 · 0 评论 -
has been blocked by CORS policy: No ‘Access-Control-Allow-Origin‘ 前后端共同解决跨域问题
经过多次遇到坑,找了很多资料,有nginx配置,前端页面添加,等但是这些都没有解决遇到问题,下面是本人遇到的情况并解决步骤过程,希望看到对你有所帮助:开发页面需要使用canvas处理图片,就报错跨域:解决过程:1:通过查询诸多资料:nginx代理配置域名新增(这个是大部分建议的结果): location ^~ /third_image/ { add_header 'Access-Control-Allow-Origin' "$http_origin" a...原创 2020-12-03 09:55:57 · 4736 阅读 · 0 评论 -
32个手写JS
01、数组扁平化数组扁平化是指将一个多维数组变为一个一维数组const arr = [1, [2, [3, [4, 5]]], 6];// => [1, 2, 3, 4, 5, 6]方法一:使用flat()const res1 = arr.flat(Infinity);方法二:利用正则const res2 = JSON.stringify(arr).replace(/\[|\]/g, '').split(',');但数据类型都会变为字符串方法三:正则改良版本转载 2020-10-26 11:33:13 · 345 阅读 · 0 评论 -
click事件的累加绑定,绑定一次点击事件,执行多次
第一种方法是使用jquery的one()方法,为元素绑定一个一次性的事件处理函数,这个事件处理函数只会被执行一次。$("#adsCollection_tb").one("click",function(){ alert("执行"); })第二种方法是在每次绑定点击事件前先解除之前的事件绑定,再为元素绑定事件,类似于先清空,在做操作一样。但你使用bind()方法绑定时,可以用unbind()原创 2017-10-07 17:53:14 · 3394 阅读 · 0 评论 -
14个你可能不知道的JS调试技巧
以更快的速度和更高的效率来调试JavaScript熟悉工具可以让工具在工作中发挥出更大的作用。尽管江湖传言 JavaScript 很难调试,但如果你掌握了几个技巧,就能用很少的时间来解决错误和bug.文中已经列出了14个你可能不知道的调试技巧,但是可能需要你牢记在心,以便在下次需要调试JavaScript代码时使用! 一起来看大多数技巧都适用于Chrome控制台和Firefox, 尽管还有很多其他转载 2017-11-07 01:09:56 · 328 阅读 · 0 评论 -
js中namespace
首先定义namespace函数:function $namespace(p_namespace) { var parts = p_namespace.split("."); if (parts.length == 0) { return null; } try { eval(parts[0]); } catch (e) {原创 2017-12-10 11:36:49 · 756 阅读 · 0 评论 -
js浏览器截图
html2canvas可以通过纯JS对浏览器端经行截屏,但截图的精确度还有待提高,部分css不可识别,所以在canvas中不能完美呈现原画面样式 兼容性: Firefox 3.5+ Google Chrome Opera 12+ IE9+ Safari 6+有以下问题: 不支持iframe 不支持跨域图片 不能在浏览器插件中使用 不支持Flash 不支持古代浏览器和I原创 2017-12-10 13:54:31 · 5791 阅读 · 0 评论 -
将文件转成编码base64码
选择图片: input type="file" id="img"> br/> button id="start">开始转换button> div> 预览:img id="imgShow" src="" alt=""> div> b>Base64数据:b> textarea rows=15 cols=60 id="conte">textarea> butt原创 2018-01-21 15:11:15 · 772 阅读 · 0 评论 -
Js 数组方法:filter()、map()、some()、every()、forEach()、indexOf()、lastIndexOf()、
filter(): 语法:var filteredArray = array.filter(callback[, thisObject]);参数说明:callback: 要对每个数组元素执行的回调函数。 thisObject : 在执行回调函数时定义的this对象。//过滤掉小于 10 的数组元素://代码:function isBigEnough(elemen原创 2018-01-23 21:23:43 · 273 阅读 · 0 评论 -
星星评价技巧
目前因为没做过电商的,所以看到电商的几星评价,自己也来试一把,这里用的vue,主要是想给这小算法做个笔记 首先template:template> div class="star"> span class="star-item" v-for="(item,index) in classes" :class="item" :key="index">span> div>te原创 2018-01-28 00:09:32 · 278 阅读 · 0 评论 -
购物车抛物线小球
直接上代码,需自行引入jq<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css">原创 2018-04-05 23:13:45 · 432 阅读 · 0 评论 -
js插件篇
此篇文章不定期记录js插件:1.Scene.js库:创建基于时间轴的动画(详情介绍请看https://mp.weixin.qq.com/s/YoUJzdDtT8AOFe0EMxG7hg)原创 2019-06-30 22:57:15 · 255 阅读 · 0 评论