javascript
文章平均质量分 54
yanhappyYY
深自缄默,如云淡薄。
展开
-
网页版本示波器校准
后台数据为STM32/FPGA芯片采集的实时数据,通过webscoket与前端通信,网页已实现示波器功能有幅度/时基调节,FFT、MATH、眼图、星落图等功能。后台传输数据为0-255 表示0-3.3V共4个通道4096条数据,每个通道为1024条数据前端展示为横向/纵向都为1024点数据,d3.scale.linear()函数绘制。1V表示一格,X轴每格为1024/10个点,Y轴每格1024/8个点...原创 2021-08-20 11:22:37 · 669 阅读 · 4 评论 -
关于动态组件的一个小小的注意点:内存里的数据需要手动回收
通过动态组件加载进来的页面,内存是不会自动回收的,影响性能。<el-dialog class="childPage" title="" :visible.sync="dialogVisible" width="100%" height="100%"> <component v-bind:is="dialogPage"></component></el-dialog>动态组件切换时,子组件里面数据不会主动回收。所以要在关闭该页面的时候回收数据举个例原创 2021-08-03 10:25:36 · 273 阅读 · 0 评论 -
jquery绑定未来事件 mousedown失效
setInterval(() => { // 以下代码有效 $("g[class^='dialNumber'] rect").off("mousedown"); $("g[class^='dialNumber'] rect").on("mousedown",function(){ console.log(1) }); // 以下代码失效 $(document).on("mousedo...原创 2020-07-29 15:54:37 · 882 阅读 · 0 评论 -
正则表达式动态传参
匹配规则有可能是遍历出来的,是动态的。需求是随机删除以1W或者2W开头的对象。代码如下:var obj = {"1W1":"123","1W2":"456","2W1":"123","3W4":"000"}var reg = 1+"W";var exp = new RegExp(reg,"g")for( var i in obj){ if(i.match(exp)){ ...原创 2020-03-11 11:17:59 · 2112 阅读 · 0 评论 -
Go.js去水印、官方图表案例理解
Go.js去水印、官方图表案例理解GoJS是一个功能丰富的JavaScript库,用于在现代web浏览器和平台上实现定制交互式图表和复杂可视化。GoJS通过可定制的模板和布局,构建复杂节点、链接和组的JavaScript图。效果点击可查看效果GO.js 官方文档 链接去水印功能可参考,官方案例只是在代码注释中添加了个人见解去水印 // a.fw = d[D.Vg(&quot;7e...原创 2018-09-20 16:23:20 · 2869 阅读 · 0 评论 -
Js 中的循环依赖解决方案
问题概述循环依赖就是相互依赖,实际项目中难免会遇到这种情况,(a.js 依赖 b.js , b.js 依赖 a.js)尤其是现在都是模块化的工程,引用想用一个js文件必须先引入。实际问题举个例子:左边是三个电阻(a.js),右边是弹出的旋钮模态框可设置电阻值(b.js)因为有多个电阻,但只有一个模态框,所以弹出时要记录当前是哪个电阻,当前电阻的值 (a --> b )当模态框...原创 2018-10-13 17:48:10 · 4443 阅读 · 0 评论 -
分享一个旋钮插件 jquery.knob.js 新增change事件中回调返回值功能以及阻止冒泡事件
本来都要休息了还是打开github,解决了线上一个插件的兼容性。 看来今晚能睡的比较踏实了!插件介绍jquery-knob是我用到的UI设计比较清新的旋钮插件之一,应用灵活,体积小,功能强大。demo 展示地址http://anthonyterrien.com/demo/knob/项目github地址https://github.com/aterrien/jQuery-Knob...原创 2018-10-14 23:12:35 · 2201 阅读 · 0 评论 -
利用Node.js GET/POST请求响应axios/ajax测试
项目迁移vue,使用了vue推荐的axios请求方式。测试axios、ajax的异同html页面 - 引入jquery和ajax分别模拟了ajax/axios的get/post请求方式<body> <button onclick="axiosFn()">axios</button> <button onclick="ajaxFn...原创 2018-11-08 10:36:22 · 1107 阅读 · 0 评论 -
封装:输入秒数后,格式化输出时间,模拟通话时间
最近再做一个程控程序,其中一个功能就是用户接通后开始计时,断开后计时停止效果如下:var CallTime =function(){ this.time = 0; this.Timer = null; var that = this; this.getTime=function(){ Timer = setTimeout(function(){ that.time+=1; ...原创 2019-01-19 16:16:37 · 433 阅读 · 0 评论 -
js防抖与节流
原文链接函数防抖定义:多次触发事件后,事件处理函数只执行一次,并且是在触发操作结束时执行。原理:对处理函数进行延时操作,若设定的延时到来之前,再次触发事件,则清除上一次的延时操作定时器,重新定时。let timer;window.onscroll = function () { if(timer){ clearTimeout(timer) } t...转载 2019-02-26 16:46:08 · 725 阅读 · 0 评论 -
正则表达式拼接-截取字符串
直接举个例子好了代码如下: var fixVal = 2; var reg=new RegExp('\\d{0,}\\.\\d{0,'+fixVal+'}'); reg // 结果: /\d{0,}\.\d{0,2}/再举个例子 - 非四舍五入截取字符串 var fixVal = 2; var str = "50.1223453245668779809" str...原创 2019-04-04 13:26:35 · 5419 阅读 · 0 评论 -
强制promise对象按顺序执行
方法一 new Promise(function(resolve){ setTimeout(resolve(console.log("a")),600) }).then(new Promise(function(resolve){ setTimeout(resolve(console.log("b")),700) })).then(new Promise(function(resol...原创 2019-08-13 14:57:58 · 626 阅读 · 0 评论 -
从html拖拽到svg区域的实现方案
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...原创 2019-08-20 17:25:59 · 907 阅读 · 0 评论 -
D3在requireJs中引用的问题
最近想要优化项目,踩到了d3的坑,正常的方式引用竟然会爆出d3 is undefined的问题。过程正常引用方式: require.config({ paths: { "jquery": "../lib/js/jquery-1.11.1.min", "bootstrap": "../lib/js/bootstra...原创 2018-09-14 18:44:56 · 1395 阅读 · 0 评论 -
工作中对于数组的应用 -- 转换、截取、移动、新增、求和
最近荒废了,没有写博客。今天上线突然发现有1W+的阅读量了,希望我真的能够帮助到别人。记录下我在实际工作中用到的数组的操作。举个例子: 图示功能是这样的: 1. 开关在哪个档位,对象档位上的数据允许发送 开关状态存储在数组上 2. 拨码开关上的状态是存储在数组中的在上为1在下为0 3. 下拉选框中的数值更改及拨码开关显示 4. 左...原创 2018-09-07 18:48:40 · 534 阅读 · 2 评论 -
可拖动模块demo
占坑最近再写一个模块拖动的功能,等不忙的时候讲这个项目总结下。需求功能区模块只允许拖动一次,删除当前模块后功能重置,能重新拖出输入点为绿色,输出点为红色,一个输入点只可以连一个输出点示波器4个通道可以随意连接输入点和输出点,但一个通道只能连一个点连线删除:可分为删除当前连线,删除所有连线删除当前模块时,当前模块上的所有连线都将删除拖动当前模块时,当前模块上的所有连线皆可...原创 2018-04-03 14:24:56 · 2311 阅读 · 5 评论 -
javascript 面向对象编程(封装、继承)
构造函数: 构造函数就是一个普通的函数,但内部使用了this变量,对构造函数使用 new 运算符就能声称事例,并且this变量会帮定在实例对象上。function Cat(name,color){ this.name = name; this.color = color;}//每一个构造函数都有一个prototype属性,指向另一个对象。这个对象的所有属性和方法,都会被构造函数转载 2017-07-31 18:39:54 · 774 阅读 · 0 评论 -
创建ajax对象
js原生post方式://1.获取ajax对象 var xhr = new XMLHttpRequest(); //2.设置请求地址 xhr.open('post', 'ajaxPost.php',true); //3.post方式设置方法头,get不需要 xhr.setRequestHeader('Content-ty原创 2017-07-24 09:22:30 · 478 阅读 · 0 评论 -
js中的"!!"是什么意思?boolean强制类型转换
昨天在敲微信小程序的留言板demo,遇到的一个问题。本想在群里问别人小程序怎么在wxml中判断留言板内容不为空之后再提交,然后问题没解决只是把我在js中个判断换了个写法。是这样的… //我之前写的代码:if(this.data.inputVal != ""){}//现在的代码if(!!this.data.inputVal){}好像是少敲了好多…QAQ….我今天在segmentfault里面搜原创 2017-09-06 09:33:26 · 1728 阅读 · 0 评论 -
javascript中的字符串、对象和数组的获取方式<基础>
温故而知新。字符串javascript中的字符串就是用”或者”“括起来的字符表示。如果符号”或”“本身就是字符串那么则用”” 或者”括起来<两者使用是相反的>转义字符\可以转义很多字符,比如\n表示换行,\t表示制表符,字符\本身也要转义,所以\表示的字符就是\。//例如 i'am "ok"'i\'am \"ok\"'//或者"i"+"'"+"am "+"'"+"ok"+"'"//转移字原创 2017-09-08 09:31:48 · 1039 阅读 · 0 评论 -
<转载> 关于js常用方法的封装
https://segmentfault.com/a/1190000010225928#articleHeader12转载 2017-10-31 14:34:13 · 311 阅读 · 0 评论 -
javascript中的立即执行函数表达式(IIFE)
同样是立即执行函数,(function(){})()和(function(){}).call(this)的区别在严格模式下:(function(){ "use strict"; console.log(this === window); // true}).call(this);(function(){ "use strict"; console.log(this === w转载 2017-11-16 09:52:33 · 307 阅读 · 0 评论 -
关闭当前页面所有模态框
当前页面不止一个可拖动模态框,当切换目录是应该将当前页面上的所有模态框关闭,模态框太多不能根据模态框ID名去关闭。版本一: //眉毛胡子一把抓,不管有没有开过当前模态框一律关闭 $(".modal").modal("hide"); //事实证明,你越想省事最后越麻烦 //问题: //我之前绑定在关闭模态框上的事件,每次都会重复执行,导致发送后台的命令重复,服务器处原创 2017-12-02 15:31:09 · 8806 阅读 · 0 评论 -
一个简单的计时器
从后台接收数据到前台展示,需要数据和时间轴一一对应,所以接收的数据都带有时间戳,只是每500ms数据传输一次,前台也需要500ms更新一次。前台展示的事件格式为: minute:second.millisecond (00:00.00) 都保留两位。效果如下:具体业务需求:当点击测试时开始计时,毫秒单位要么是.50,要么是00。接收的时间戳为1,2,3,4…分别对应500ms,1000ms,150原创 2017-12-21 17:48:43 · 747 阅读 · 0 评论 -
文件上传时对input标签的重置
在使用input上传文件时,通常会绑定onchange事件,但是文件上传后input的value值不会主动清空,以至于再次上传同名文件时不会触发onchange事件,所以需要手动清空。三种方法如下:html结构 <form action="" id="uploads"> <input type="file" id="fileUp"/> </form>js代码:原创 2018-01-04 16:16:59 · 4679 阅读 · 1 评论 -
面向对象的封装方法-封装模版
工作中遇到的和积累的,面向对象的封装方法:模板一// Jquery 依托jquery的封装方法var Fn, __bind = function (fn, context) { return function () { return fn.apply(context, arguments); };};(function () {原创 2018-01-25 10:06:27 · 333 阅读 · 0 评论 -
javascript中的深拷贝和浅拷贝<整理>
在javascript中对数据的clone分为赋值、深拷贝和浅拷贝。 在经过克隆之后,我们希望clone的对象操作之后与数据源互不干扰。在分析深拷贝和浅拷贝之前还有一个概念要清楚,就是不同数据类型的clone方式和效果是不同的。javascript中数据类型 类型 内容 基本数据类型 string、number、boolean、null、undefine原创 2018-02-01 18:35:40 · 424 阅读 · 0 评论 -
字符串截取中关于正则表达式的应用
字符串截取中关于正则表达式的应用一般前台不处理数据,但是经常会有少量的数据不符合要求,需要简单的截取和拼接。那么正则表达式就是匹配相关字符的有利帮手。需求 电路仿真项目 后台ngspice软件生成波形的纯文本文件.raw文件,通过ajax交互到前台,前台处理string文本,获取到电压节点名称,再获取到该电压xy坐标信息,在前台模拟ngspice的电路波形。(D3.js绘图)文本数...原创 2018-03-07 18:01:54 · 491 阅读 · 0 评论 -
Math.random()生成随机数方法
Math.random()生成随机数方法该方法返回 0 到 1 之间的一个伪随机数,可能等于 0,但是一定小于 1。 Math.random() // 0.7151307314634323 // 返回给定范围内的随机数(上面的方法是随机整数)function getRandomArbitrary(min, max) {return Math.random() * (max - min) + m原创 2017-03-30 00:35:55 · 18554 阅读 · 0 评论