自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

极简

纸上得来终觉浅

  • 博客(110)
  • 资源 (5)
  • 收藏
  • 关注

原创 微信小程序打卡定位实现方案

小程序定位

2024-01-25 22:42:29 1470

翻译 JavaScript 引擎基础知识:形状(Shapes)和内联缓存(Inline Caches)

这篇文章描述了所有 JavaScript 引擎通用的一些关键基础知识,而不仅仅是 V8。作为一名 JavaScript 开发者,深入了解 JavaScript 引擎的工作原理有助于分析代码的性能特征。

2023-12-24 19:18:21 84

原创 练练手之“四环”“磁铁”(svg)

svg练练手

2023-12-12 21:01:08 387

原创 三、iMove-cli save服务被调用,dsl落库代码

引言:iMove的cli工具,通过imove -d会启动一个本地服务,这个本地服务负责监听来自画布的请求,实现dsl存储以及代码的落库。

2023-09-25 22:06:55 122

原创 二、iMove-cli 本地开发模式

iMove主要由3个包组成:cli、compile-code、core

2023-09-23 17:26:46 108

原创 一、iMove源码解读:初识

随着低代码思想的不断蔓延,除了大企业,中小企业也尝试构建自己的低代码平台,以期降低开发门槛,提高开发效率,降低生产成本。

2023-09-21 22:43:19 214

原创 如何动态执行JS

引言:随着行业发展,技术更新,生产结构发生变化,低代码技术又重新站上了舞台,开发者们成为了舞台幕后的操纵者。在web端的低代码开发工具中,js占据了重要的位置,而【动态执行】也成为了低代码开发工具中不可或缺的一部分。本文记录了js的动态执行方法,以备不时之需。

2023-05-25 21:20:53 1570

原创 LeeCode [N字形变换]算法解析

N字形变换算法详解,数学归纳法

2023-05-24 18:38:10 772

原创 GraphQL初试

本文主要完成了对GraphQL的一个基本认识

2023-03-03 16:41:02 185

原创 一种加密方法(16进制)

一种简单的加密方法,信息轻松加密,数据更安全

2022-10-20 01:00:02 1823

原创 规范系列之代码提交日志

代码提交规范

2022-06-30 16:53:36 364

原创 推荐一个表格组件handsontable

web版的excel,Handsontable可能满足你的需求

2022-04-04 23:40:29 595

原创 前端实现断点下载

背景:当下载一个很大的文件时,如果下载到一半暂停,如果继续下载呢?断点下载就是解决这个问题的。什么是断点下载?所谓断点下载就是可以一部分一部分的下载,不用一次性把文件数据全部拿到。涉及到的主要HTTP消息头通用首部 请求头 响应头 实体头 Status Code Range:请求数据范围 Accept-Ranges:标识自身支持范围请求 Content-Range:一个数据片段在整个文件中的位置。 ETag:资源特定版本标识符.

2021-10-23 11:09:04 4003 7

原创 前端生成压缩文件实现批量下载

1、准备工作FileSaver.js:文件保存 jszip:文件压缩 moment:日期格式化工具(可选)2、实例import { saveAs } from 'file-saver/FileSaver'import moment from 'moment'const JSZip = require('jszip')let zip = new JSZip()zip.file('文件名1.xx', Blob1) // 添加压缩文件zip.file('文件名2.xx', Blob2

2021-10-19 10:16:19 638

翻译 浏览器工作原理(part4)

原文:https://developers.google.com/web/updates/2018/09/inside-browser-part4当用户输入来到合成器这是关于Chrome内部工作原理系列文章的最后一章,这系列文章研究了浏览器如何将我们的代码处理成我们看到的网页。在前面的一章,我们学习了渲染进程和合成器。在这一章中,我们将看到合成器是如何流畅的响应用户的输入。从浏览器视角出发的输入事件当你听到“输入事件”,你可能仅仅想到文本的输入或者鼠标点击事件,但是从浏览器的视角看,输入

2021-10-11 18:55:25 157

翻译 浏览器工作原理(part 3)

原文:https://developers.google.com/web/updates/2018/09/inside-browser-part3,针对原文有部分的删改。渲染进程的内部工作原理之前的部分我们介绍了浏览器的多进程架构和导航的流程。在这一章,我们将要去看看在渲染进程的内部发生了什么。渲染进程涉及到web性能的许多方面,由于渲染进程内部有很多事件发生,在这篇文章中只是简略概述。如果你想深入了解,Web Fundamentals【Why does speed matter?】 的性能部分

2021-10-09 20:56:24 124

翻译 浏览器工作原理(part 2)

原文:https://developers.google.com/web/updates/2018/09/inside-browser-part2,针对原文有部分的删改。导航的时候发生了什么本文将深入挖掘为了显示网站内容,每一个进程和线程之间是怎么通信的。让我们从一个简单的网页浏览用例开始:你在浏览器中输入了一个URL地址,然后浏览器从互联网上获取数据并显示一个页面。本文将重点介绍用户访问网站以及浏览器准备渲染页面的部分,可以称为导航。从Browser进程开始正如在上一篇文章描述的,选项

2021-09-30 21:20:53 140

翻译 浏览器工作原理(part 1)

原文见:https://developers.google.com/web/updates/2018/09/inside-browser-part1,本文有部分删改。核心概念:CPU、GPU、进程、线程、架构、沙箱架构:又名软件架构,是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计沙箱(沙盒):一种安全机制,为运行中的程序提供的隔离环境。沙箱通常严格控制其中的程序所能访问的资源。没有关于如何构建 Web 浏览器的标准规范。 一种浏览器的方法可能与另一种完全不同。

2021-09-28 18:10:33 194

原创 让gin的example跑起来

背景:有一天,运维同事突然让我帮他写一个登录页面,接口由它通过go语言编写。然后画好了页面,他因为有其他事情,接口还没完,于是打算自己跑个go服务模拟下接口调用。了解到go有一个叫做gin的web框架,go的github仓库上的示例正好满足需要,于是就打算把代码跑起来,经过一番搜索、尝试,终于如愿以偿,现把过程总结如下,以备后序,或有益于他人。1、技术点:go get、go mod、依赖管理2、代码:example.gopackage mainimport "github.com/.

2021-09-10 16:01:54 253

原创 vue源码中,将一个字符串重复n次的算法解析

在浏览vue2.x的源码过程中,无意中在codeframe.js文件中看到一个repeat函数,其作用就是能够将一个字符串重复指定的次数并返回,以往看到类似的代码大多都是瞄一眼写法,然后就直接略过,然而这次我不打算轻易放过,尝试对其写法做出了逆向解释和扩展,因而有了此文。原始代码如下:functionrepeat(str,n){letresult=''if(n>0){while(true){if(n&1){...

2021-06-25 00:07:31 788 1

转载 前端异常监控解决方案研究

前端监控包括行为监控、异常监控、性能监控等,本文主要讨论异常监控。对于前端而言,和后端处于同一个监控系统中,前端有自己的监控方案,后端也有自己等监控方案,但两者并不分离,因为一个用户在操作应用过程中如果出现异常,有可能是前端引起,也有可能是后端引起,需要有一个机制,将前后端串联起来,使监控本身统一于监控系统。因此,即使只讨论前端异常监控,其实也不能严格区分前后端界限,而要根据实际系统的设计,在最终的报表中体现出监控对开发和业务的帮助。一般而言,一个监控系统,大致可以分为四个阶段:日志采集、日志存储、统计.

2021-05-06 15:11:11 978

原创 微信小程序中字符串表达式计算

背景:偶然在微信小程序中需要计算类似‘2+5-3×4’的表达式,结果发先eval、new Function等方法不被支持,无奈之下进行了手动实现。一、需求:正整数之间的加(+)、减(-)、乘(×)、除(÷)运算,支持括号二、思路递归将表达式中括号中的内容提取并计算出来提取乘、除表达式进行处理提取加、减表达式进行处理三、实现方法【字符串正则匹配方式】依次处理括号、乘除和加减,可考虑用字符串的replace方法【语法解析方式】抽象表达式中各组成元素,借用抽象语法树相关原理处理表达式.

2021-04-20 19:17:42 1308

翻译 超微编译器

事物的特殊性往往也能反映事物的普遍性。-- 网摘背景:在了解抽象语法树的时候偶然了解到 the-super-tiny-compiler这个开源项目,一看之下似乎不复杂,原文全是英文,阅读的时候就想到翻译一下,一方面加深理解,一方面也作为阅读的成果。本文主要是对源码中注释的翻译。大多数编译器分为三个主要阶段解析转换生成代码一、解析定义:将原始代码转成更抽象的表示。详细解释:解析通常分为词法分析和句法分析两个阶段。词法分析:由词法分析器将原始代码分解成不同的标记,这些标记包括数字.

2020-06-29 18:53:19 187

原创 前端e2e测试尝试

环境node: 12.14.0 puppeteer:3.3.0resemblejs:3.2.4解决问题通过puppeteer模拟用户操作,将操作后的页面效果进行截屏保存,此外保留第一次成功运行后的所有截屏图片,回归测试时可利用新旧截屏图片对比是否一致找出问题。目录及文件介绍compared :存放前后图片对比结果生成的图片imgs :存放页面截图first-test :存放第一次运行测试脚本(main.js)所产生的的页面截图src:存放核心源码test :存放测试脚本

2020-06-21 13:03:29 442

翻译 BDD、TDD、ATDD的对比区别(译文)

本指南旨在描述不同的测试方法或实践,例如行为驱动开发(BDD)、测试驱动开发(TDD)、验收测试驱动开发(ATDD)。它还将描述这些技术之间的主要区别。在文章最后,将描述它们是怎样工作的,它们的关键差异以及在开发过程中所扮演的独特的角色。原文:https://www.browserstack.com/guide/tdd-vs-bdd-vs-atdd什么是测试驱动开发-Test-Driven Development (TDD)?测试驱动开发是从开发人员角度使用的一种测试方法或者说编程实践。在.

2020-06-11 17:36:15 2366

原创 webpack4.x打包文件解析

眼睛里的东西,是被赋予的,逃脱,就分不清‘真相’与‘现实’。–极简一、环境"webpack": "^4.43.0""webpack-cli": "^3.3.11"二、源码src/index.jsexport default function() { console.log('hello world')}三、配置文件webpack.config.jsconst path = require('path');module.exports = { mode: 'de.

2020-06-09 18:33:34 313

原创 web明水印

一、功能点水印文本自定义水印文本颜色自定义水印旋转角度自定义水印覆盖随容器自适应水印背景穿透

2020-05-26 23:39:13 386

原创 node命令行工具-创建默认格式的vue单文件

地球上的一切工具和机器,不过是人肢体知觉的发展而已。——爱迪生背景:平常在编写vue单文件时总是拷贝一个单文件,然后修改成自己想要的格式,次数做多了未免有点繁琐。于是觉得不如写个node命令行工具,自动生成默认格式的单文件。一、准备工作node环境npm账号:用于将命令行工具存放在npm库熟悉commander.js核心工具二、实现思路基于commander.js实现一个file-create主命令,vue子命令,最终实现通过file-create vue <MyVueNam.

2020-05-23 10:28:53 262 1

原创 组合排序算法

一、测试用例用例一入参:[[1,2],[3,4],[5,6]]出参:[1, 3, 5][1, 3, 6][1, 4, 5][1, 4, 6][2, 3, 5][2, 3, 6][2, 4, 5][2, 4, 6]用例二入参:[[‘红色’,‘白色’],[‘1.7米’,‘1.8米’],[‘男性’,‘女性’]]出参:[“红色”, “1.7米”, “男性”][“红色”, “1.7米”, “女性”][“红色”, “1.8米”, “男性”][“红色”, “1.8米”, “女性”][

2020-05-14 19:13:41 824

原创 css3动画-月食一颗星

跟着时间行走,原本熟悉的东西也会变得陌生。-- 极简一、效果二、代码:CodeOpen

2020-05-01 21:29:00 200

原创 webpack构建自定义vue组件库

本文描述jsplumb.js库的vue组件化过程一、步骤创建vue项目,vue create w-vue-jsplumb引入jsplumb,编写组件测试npm发布(编写自动发布脚本)二、错误1.执行 vue create w-vue-jsplumb 产生的错误:MSBUILD : error MSB3428: 未能加载 Visual C++ 组件“VCBuild.exe”。...

2020-03-17 22:19:39 963

原创 angular项目中配置文件实践

前言:这里的配置一般指项目构建后可能需要运维人员进行手动修改的内容,比如:url地址等(没有使用代理服务器)。因此为便于运维人员修改,会创建单独的配置文件,且构建后也能方便其修改。一、配置内容放在json文件中json文件放在assets目录下在使用处发送get请求获取json数据,请求可能需要同步二、js配置文件,把js配置文件当作第三方库使用创建配置文件src/app/ur...

2019-12-05 15:23:36 1381

转载 浅谈小程序运行机制

转载于:Fundebug写作背景接触小程序有一段时间了,总得来说小程序开发门槛比较低,但其中基本的运行机制和原理还是要懂的。“比如我在面试的时候问到一个关于小程序的问题,问小程序有window对象吗?他说有吧”,但其实是没有的。感觉他并没有了解小程序底层的一些东西,归根结底来说应该只能算会使用这个工具,但并不明白其中的道理。小程序与普通网页开发是有很大差别的,这就要从它的技术架构底层去剖...

2019-10-08 14:07:24 486

原创 入门级Mock服务实现(一)

背景:在前后端分离开发模式中,如果前端进度超过后端,会出现前端无数据可用的情况,这时会或多或少影响前端开发效率,从而影响项目的整体进度,在这种情况下,前端开发人员可用通过定义静态数据变量、创建JSON文件等方式解决数据问题,不过这样的操作会破坏代码的整洁性,同时增加项目体积,然而这并不是必要的。这时候业界出现了一种解决方案,把模拟后端返回数据的功能脱离项目,单独实现,实现多项目共享。这就是Moc...

2019-09-19 15:43:51 1945

原创 简单拖拽布局客户端渲染-小结

背景:项目需要在管理端通过拖拽的方式对大屏页面进行布局,生成布局配置。然后在客户端根据布局配置进行渲染。一、特殊需求● 页面布局模块可能重合,这时需要定时切换,时间可配置● 超出布局容器时,内容可滚动,包括横向和纵向,滚动周期可配置二、大屏特性自适应,随屏幕分辨率自适应改变大小注:自适应页面不能使用px,结合使用vw、vh、%、em、rem三、实现步骤布局容器实现内容超出滚...

2019-06-22 11:48:34 551

原创 可视化布局实现方案

背景:大屏展示网页,管理端实现拖拽布局配置一、功能点拖拽实现布局配置根据配置渲染出页面二、开源工具vue-grid-layout:基于vue的可视化拖拽布局工具,可拖动改变容器大小muuri:功能和vue-grid-layout差不多,不支持拖动改变容器大小三、本文采用vue-grid-layout实现,使用详情参见Github四、实现demo效果五、改进功能点...

2019-06-13 16:01:26 7906 3

原创 前端异步小结

一、异步操作XMLHttpRequest请求定时器事件WebWorkers,工作线程的运行Websocket请求二、异步编程解决方案PromiseGeneratorasync事件轮询响应式编程,RxJS多线程...

2019-05-21 10:08:40 160

原创 web端分屏异显实现-Angular+Electron

要点:主屏实现-Angular实现,部署在服务器副屏实现-Angular+Electron,本地应用主副屏通信背景:类似银行柜台操作的一个应用场景:银行人员在个人电脑上一界面操作,但需要同时对办理业务的客户展示相关信息,但要求只展示操作界面的部分信息,同时硬件设备只提供一台主机和两个显示器。技术方案:在上述背景下,开始想的是利用操作系统本身的显示器扩展能力,打开两个不同的浏...

2019-05-19 20:01:54 4741 4

原创 web端分屏异显实现技术思路-同主机同域名环境

要点:数据存储两屏之间的通信存储Cookie 受同源策略限制,支持多标签页数据共享,大小4KB左右,视浏览器而定LocalStorage 受同源策略限制,支持多标签页数据共享,存储数据量大概几M,视浏览器而定SessionStorage 受同源策略限制,单标签页数据,存储数据量大概几M,视浏览器而定IndexedDB 受同源策略限制,能够存储较大的数据量通信web...

2019-05-15 19:27:05 1829

原创 基础算法回顾(二)

递归递归是调用自己的函数;递归函数有基线条件和递归条件,决定结束和递归;递归调用会产生调用栈;栈有压入和弹出两种操作;调用链越长,调用栈就会越长,所占用的内存就多;尾递归可以解决调用栈过长的问题。快速排序快速排序使用了分而治之的方法分而治之:递归式问题解决方法D&amp;C分而治之的原理:1.找出简单的基线条件2.确定如何缩小问题的规模,使其符合基线条件基线条件是数...

2019-03-08 18:30:43 124

Flink.zip PPT

Apache Flink 是一个框架和分布式处理引擎,用于在无边界和有边界数据流上进行有状态的计算。入门介绍,PPT。

2021-03-15

高盛-China-AI-中国人工智能的崛起(中文版)

人工智能是信息时代的尖端科技。计算的飞跃建立在人类告知计算机如何表现的基础上,计算建立在计算机学习如何表现能够对每个行业有意义的基础上。虽然目前可能被视作在下一个 AI 冬天(图 8)之前的最新承诺和失望循环,这些投资和新技术至少将给我们带来机器学习产品的实实在在的经济利益。

2017-11-22

react全栈开发

react全栈开发技术文档,react作为一个前端开发框架,它具有完善的生态全,让你开发事半功倍,你值得拥有!

2017-11-20

页面时间轴滑动特效

实现按时间排列业务的时间轴滑动特效代码

2016-07-28

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除