前端
文章平均质量分 80
hfhan_872914334
前端开发
展开
-
webpack打包时如何修改文件名
webpack打包时如何修改文件名在使用webpack进行项目打包的时候,我们可通过以下方式对不同类型的资源,进行文件名或文件路径的修改原创 2022-06-14 15:46:51 · 5703 阅读 · 1 评论 -
V8是怎么执行JS代码的
1、V8的演进历史2008年V8发布第一个版本,当时的V8架构比较激进,直接将js代码编译为机器码并执行,所以执行速度很快,但是只有Codegen一个编译器,所以对代码的优化很有限。2010年V8发布了Crankshaft编译器,js代码会先被Full-Codegen编译器编译,如果后续改代码块会被多次执行,则会用Crankshaft编译器重新编译,生成更优化的代码,之后就使用优化后的代码来执行,进而提升性能。Crankshaft编译器对代码的优化有限,所以2015年V8中加入了TurboFa原创 2022-04-01 10:33:23 · 761 阅读 · 0 评论 -
gis中的坐标系
地球的三级逼近地球的自然表面不是平整的,需要想办法用数学公式描述地球表面,只能设想一个近似的数学面。大地水准面是地球表面的第一级逼近。假设当海水处于完全静止的平衡状态时,从海平面延伸到所有大陆下部,而与地球重力方向处处正交的一个连续、闭合的曲面,这就是大地水准面。地球椭球体是地球表面的第二级逼近。大地水准面可以近似成一个规则成椭球体,但并不是完全规则,其形状接近一个扁率极小的椭圆绕短轴旋转所形成的规则椭球体,这个椭球体称为地球椭球体。由一系列参数可确定一个椭球体,地球椭球体的基本参数如下大地基准原创 2021-05-17 14:26:09 · 4772 阅读 · 1 评论 -
vue2开发中遇到的一些问题
项目使用webpack + vue + element 进行开发,但是将打包后的项目在ie上运行时,发现了以下错误:1.项目在ie9下样式错乱,这是和vue及element没有什么关系,基本上都是自己样式书写没有考虑到浏览器兼容性问题比如:flex布局,clear:both清除浮动,::after伪元素等2.element-ui 的loading 加载动画不能自动关闭原因:未知!!!Github上的讨论:https://github.com/ElemeFE/element/issues/8894原创 2021-05-07 16:51:03 · 942 阅读 · 2 评论 -
arcgis图层数据查询
有时候我们需要根据发布的arcgis服务查询服务上的一些数据,比如点击地图上的某个位置,比如根据某个关键字进行要素查询等等,而arcgis关于这方面的api常用的有三个:find、query和identify。一、find查询查找操作在地图服务资源上执行。此操作的结果是查找结果资源。每个结果都包含其值,要素ID,字段名称,图层ID,图层名称,几何图形,几何类型以及名称 - 值对形式的属性。api说明:http://xxx/arcgis/sdk/rest/index.html#/Find/02ss000原创 2021-05-07 16:37:36 · 4361 阅读 · 0 评论 -
常用空间分析函数
常用空间分析函数包含 点、线、面 之间的相互关系本文主要记录一些自己开发中常用的一些分析函数,比较正宗和全面的可以看一些空间分析库,比如前端的 Turf 和 JSTS1、点1.1、点到点的距离//点到点的距离function dist2d(coord1, coord2) { let dx = coord1[0] - coord2[0]; let dy = coord1[1] - coord2[1]; return Math.sqrt(dx * dx + dy * dy)}dist原创 2020-12-23 14:53:06 · 2033 阅读 · 2 评论 -
页面渲染流程
1.解析html文件,创建DOM树自上而下解析,遇到任何样式(link、style)和脚本(script)都会阻塞 1)css加载不会阻塞html文件的解析,但会阻塞dom的渲染 2)css加载会阻塞后面js语句的执行 3)js会阻塞html的解析和渲染 4)没有defer和async标签的script会立即加载并执行 5)有async标签的js,js的加载执行和html的解析和渲染并行 6)有defer标签的js,js的加载和html的解析和渲染并行,但会在html解析完成后执行原创 2020-07-16 15:22:10 · 201 阅读 · 0 评论 -
js内存数据
基本储存单元位(bit):二进制数中的一个数位,可以是0或者1,是计算机中数据的最小单位。字节(Byte,B):计算机中数据的基本单位,每8位组成一个字节。各种信息在计算机中存储、处理至少需要一个字节。例如,一个ASCII码用一个字节表示,一个汉字用两个字节表示。字(Word):两个字节称为一个字。汉字的存储单位都是一个字。扩展的存储单位在计算机各种存储介质(例如内存、硬盘、光盘等)的存储容量表示中,用户所接触到的存储单位不是位、字节和字,而是KB、MB、GB等,但这不是新的存储单位,而是基于字节原创 2020-07-16 15:20:10 · 930 阅读 · 0 评论 -
HTTP状态码
1、消息:这一类型的状态码,代表请求已被接受,需要继续处理100 Continue //客户端应当继续发送请求。这个临时响应是用来通知客户端它的部分请求已经被服务器接收,且仍未被拒绝。101 Switching Protocols //服务器已经理解了客户端的请求,并将通过Upgrade 消息头通知客户端采用不同的协议来完成这个请求。102 Processing //由WebDAV(RFC 2518)扩展的状态码,代表处理将被继续执行。2、成功:这一类型的状态码,代表请求已成功被服务器接收、理解、并原创 2020-07-16 15:17:16 · 199 阅读 · 1 评论 -
vue-数据监听与依赖收集
文章围绕下面demo进行分析<div id="app"> <span>{{a.b}} {{c}} {{d}}</span></div><script> var app = new Vue({ ...原创 2020-04-19 19:38:06 · 602 阅读 · 0 评论 -
JS禁止打开控制台
主要为了通过禁止打开控制台,防止别人进行代码调试。1、禁止右键查看源码和F12//禁止F12键盘事件document.addEventListener('keydown', function(event){ return 123 != event.keyCode || (event.returnValue = false)});//禁止右键、选择、复制document.addE...原创 2020-01-03 16:17:03 · 1851 阅读 · 0 评论 -
vue响应式系统--observe、watcher、dep
Vue的响应式系统Vue 最独特的特性之一,是其非侵入性的响应式系统。数据模型仅仅是普通的JavaScript 对象,而当你修改它们时,视图会进行更新,这使得状态管理非常简单直接,我们可以只关注数据本身,而不用手动处理数据到视图的渲染,避免了繁琐的 DOM 操作,提高了开发效率。vue 的响应式系统依赖于三个重要的类:Dep 类、Watcher 类、Observer 类,然后使用发布订阅模式的...原创 2019-04-08 17:34:48 · 4000 阅读 · 3 评论 -
什么是MVVM,MVC和MVVM的区别,MVVM框架VUE实现原理
MVVM定义MVVM是Model-View-ViewModel的简写。即模型-视图-视图模型。【模型】指的是后端传递的数据。【视图】指的是所看到的页面。【视图模型】是mvvm模式的核心,它是连接view和model的桥梁。它有两个方向:一是将【模型】转化成【视图】,即将数据转化成所看到的页面。实现的方式是:数据绑定。二是将【视图】转化成【模型】,即将所看到的页面转化成数据。实现的方式是:DOM...转载 2019-04-01 14:27:13 · 573 阅读 · 0 评论 -
vue数据初始化--initState
数据初始化Vue 实例在建立的时候会运行一系列的初始化操作,而在这些初始化操作里面,和数据绑定关联最大的是 initState。首先,来看一下他的代码:function initState(vm) { vm._watchers = []; var opts = vm.$options; if(opts.props) { initProps(vm, opts.props); //初始...原创 2019-04-10 16:39:49 · 4652 阅读 · 0 评论 -
vue自定义指令--directive
Vue中内置了很多的指令,如v-model、v-show、v-html等,但是有时候这些指令并不能满足我们,或者说我们想为元素附加一些特别的功能,这时候,我们就需要用到vue中一个很强大的功能了—自定义指令。在开始之前,我们需要明确一点,自定义指令解决的问题或者说使用场景是对普通 DOM 元素进行底层操作,所以我们不能盲目的胡乱的使用自定义指令。如何声明自定义指令?就像vue中有全局组件和局...原创 2019-04-04 17:21:20 · 5848 阅读 · 0 评论 -
发布订阅模式与观察者模式
背景设计模式并非是软件开发的专业术语,实际上,“模式”最早诞生于建筑学。设计模式的定义是:在面向对象软件设计过程中针对特定问题的简洁而优雅的解决方案。通俗一点说,设计模式是在某种场合下对某个问题的一种解决方案。如果再通俗一点说,设计模式就是给面向对象软件开发中的一些好的设计取个名字。这些“好的设计”并不是谁发明的,而是早已存在于软件开发中。一个稍有经验的程序员也许在不知不觉中数次使用过这些设...原创 2019-03-29 18:25:12 · 43503 阅读 · 15 评论 -
垃圾回收机制
1、 引用计数 引用计数算法是垃圾回收最早的算法,有其优势,也有其劣势,但是现在已经很少有使用了。原理:为每个对象添加一个计数器,表示对象的引用次数,每当创建一个新的引用指向该对象时其计数器就加1,每当指向该对象的引用失效时计数器就减1。当计数器的值为0时就会被浏览器回收。优点:可即刻回收垃圾:当计数器值为0时,会马上回收对象,提高内存使用效率STW(Stop-The-Worl...原创 2019-01-02 17:44:05 · 153 阅读 · 0 评论 -
Cookie -- 前端视角
1.Cookie机制在程序中,会话跟踪是很重要的事情。理论上,一个用户的所有请求操作都应该属于同一个会话,而另一个用户的所有请求操作则应该属于另一个会话,二者不能混淆。例如,用户A在超市购买的任何商品都应该放在A的购物车内,不论是用户A什么时间购买的,这都是属于同一个会话的,不能放入用户B或用户C的购物车内,这不属于同一个会话。而Web应用程序是使用HTTP协议传输数据的。HTTP协议是无...原创 2018-01-05 11:09:22 · 2334 阅读 · 0 评论 -
从js数据类型到原型原型链
一、数据类型 在JavaScript中,数据类型可以分为原始类型以及引用类型。其中原始类型包括string,number, boolean, null, undefined, symbol(ES6新增,表示独一无二的值),这6种数据类型是按照值进行分配的,是存放在栈(stack)内存中的简单数据段,可以直接访问,数据大小确定,内存空间大小可以分配。引用类型包括function,object,...原创 2018-04-07 17:45:29 · 1041 阅读 · 0 评论 -
jqGrid使用过程中的一些问题及解决(持续更新中)
前言在使用JQuery进行项目开发的时候,我们多会使用表格进行数据的展示,这时候我们就需要一款好的表格插件。这一块上比较出名的也就是bootstrap-table,datatables以及jqgrid了,但是在使用中发现bootstrap-table和datatables的问题是真的不少,所以最后就选择了jqgrid,虽然也有问题,但不及bootstrap-table和datatables那么...原创 2018-05-04 17:59:47 · 6779 阅读 · 0 评论 -
vue开发中出现的一些问题记录
项目使用webpack + vue + element 进行开发,但是将打包后的项目在ie上运行时,发现了以下错误:1、项目在ie9下样式错乱,这是和vue及element没有什么关系,基本上都是自己样式书写没有考虑到浏览器兼容性问题比如:flex布局,clear:both清除浮动,::after伪元素等2、element-ui 的loading 加载动画不能自动关闭原因:未知!!...原创 2018-07-12 08:50:26 · 1804 阅读 · 0 评论 -
类script加载,异步加载,顺序执行
主要是想实现把压缩加密后的js文件存储在本地,网上找了下没找到理想的,所以自己动手写了一个,主要是仿照script标签的功能,实现异步加载,顺序执行。如果本地已经有该文件,则不从新加载,直接调用本地数据。jsFile是存储文件信息的数组,其中,path是文件路径,name是存储在本地的名字,active表示当前文件是否已经执行,load表示当前文件手已经加载完成,还要一个隐藏的content属...原创 2018-07-27 09:01:12 · 426 阅读 · 0 评论 -
js数据类型--object
系列文章1 、从数据类型讲原型原型链内容回顾在JavaScript中,数据类型可以分为原始类型以及引用类型。其中原始类型包括string,number, boolean, null, undefined, symbol(ES6新增,表示独一无二的值),这6种数据类型是按照值进行分配的,是存放在栈(stack)内存中的简单数据段,可以直接访问,数据大小确定,内存空间大小可以分配。...原创 2018-09-02 15:33:48 · 2362 阅读 · 0 评论 -
document与Object的关系
window与Objet1、 window.__proto__ === Window.prototype2、 window.__proto__.__proto__ === 窗口属性(WindowProperties)3、 window.__proto__.__proto__.__proto__ === EventTarget.prototype4、 EventTarget.prototyp...原创 2018-12-28 11:26:25 · 457 阅读 · 0 评论 -
类script标签,异步加载,顺序执行
主要是想实现把压缩加密后的js文件存储在本地,网上找了下没找到理想的,所以自己动手写了一个,主要是仿照script标签的功能,实现异步加载,顺序执行。如果本地已经有该文件,则不重新加载,直接调用本地数据。jsFile是存储文件信息的数组,其中,path是文件路径,name是存储在本地的名字,active表示当前文件是否已经执行,load表示当前文件手已经加载完成,还要一个隐藏的content属性...原创 2018-12-28 11:37:42 · 990 阅读 · 0 评论 -
学习并实现一个Promise
学习自阮一峰老师 ECMAScript 6 入门 Promise介绍参考 promise-实现Promise属于微任务,而模拟的 Promise 都是使用setTimeout,属于宏任务。所以在某些情况下会有bug,需要注意,如:setTimeout('console.log(1)')new Promise(resolve=>{ console.log(2) resolve()...原创 2018-12-29 18:02:03 · 321 阅读 · 0 评论 -
操作系统的线程与进程
操作系统的线程与进程操作系统相关背景知识:程序:可供CPU执行的代码,存储在磁盘上进程:将程序从磁盘调入到内存,准备执行,称为进程线程:Thread,是进程内部执行代码的基本单位多线程并发:为了同时执行多个任务,在每个进程中可能同时存在多个线程。这些线程是“并发执行”的——宏观上看是“同时”执行,微观上看是“依次轮询”执行进程和线程的关系:(1)进程是操作系统分配内存原创 2017-10-08 17:43:09 · 261 阅读 · 0 评论