
js
文章平均质量分 53
ttx_laughing
这个作者很懒,什么都没留下…
展开
-
JS内存管理
内存分配32位操作系统给V8执行引擎分配的内存空间是700Mb;64位操作系统给V8执行引擎分配的内存空间是1.4GbJS把内存空间分为栈,堆和池(也叫栈中)栈(stack)主要用于存储JS中的基本数据类型,包括Boolean、Number、String、undefined、null,以及引用类型的指针。栈是一个线性排列的内存空间,存储的内容都是空间大小已知或者有有范围上限的,如基本类型的值、堆内存空间块的起始地址等,算作一种简单存储。特点:内存空间由系统自动分配和自动释放;线性存原创 2020-05-22 16:19:39 · 265 阅读 · 0 评论 -
React diff 算法 & Virtual DOM
将Virtual DOM(虚拟Dom)树转换成Actual DOM(真实Dom)树的最少操作的过程,叫作调和。diff算法是调和的具体实现,将O(n^3)复杂度 转化为 O(n)复杂度。diff算法原则:分层同级比较,不跨层比较;相同的组件生成的DOM结构类似;分组内的同级节点通过唯一的id进行区分(key)不同类型节点比较逐层比较,不同类型节点直接替换,组件经历unmount,m...原创 2020-03-26 13:54:47 · 293 阅读 · 0 评论 -
axios / fetch / ajax
ajax传统 Ajax 指的是 XMLHttpRequest(XHR), 最早出现的发送后端请求技术,隶属于原始js中,核心使用XMLHttpRequest对象,多个请求之间如果有先后关系的话,就会出现回调地狱。最常用的是jquery的ajax api,对原生XHR请求的封装,添加了对JSONP的支持。$.ajax({ type: 'POST', url: url, data...原创 2020-03-17 09:33:30 · 196 阅读 · 0 评论 -
jQuery的defer对象
jQuery的deferred对象详解一、什么是deferred对象?开发网站的过程中,我们经常遇到某些耗时很长的javascript操作。其中,既有异步的操作(比如ajax读取服务器数据),也有同步的操作(比如遍历一个大型数组),它们都不是立即能得到结果的。通常的做法是,为它们指定回调函数(callback)。即事先规定,一旦它们运行结束,应该调用哪些函数。但是,在回调函数方面,jQuery的功转载 2017-11-11 17:12:14 · 1077 阅读 · 0 评论 -
关于JavaScript中的构造函数和对象中的构造属性
JavaScript和面向对象语言(例Java)一样,在创建对象都是通过调用构造函数,但是又与面向对象语言有所区别。初学JavaScript时,总把函数的构造属性和对象的构造属性弄混淆,总结下面几点。 1、constructor属性始终指向创建当前对象的构造函数1 // 等价于 var foo = new Array(1, 56, 34, 12); 2 var arr = [1, 56, 34原创 2017-10-16 19:22:49 · 4189 阅读 · 0 评论 -
JavaScript 匿名函数自调
我们知道一个HTML文件在被加载的时候是从根标签html依次往下的,在遇到link,script等标签引入的外部资源时,下载外部资源,并执行外部资源。在js中,表达式会被立即执行,也就是说,不管是引入的外部js文件还是嵌入在html文件中的js脚本,其中的表达式都会被立即执行。 函数名是一个指向函数的指针。在JavaScript中,定义函数有常见的两种形式:函数声明和函数直接量(或者叫函数表达式)原创 2017-11-10 21:02:43 · 5341 阅读 · 0 评论 -
JavaScript this指针
this指针,在Java EE等开发语言中叫做“上下文对象”,但是在JavaScript中情况完全不同,不能把Java EE中对this的理解带到JavaScript中来。 言归正传,在JavaScript中,this代表函数运行时,自动生成的一个内部对象,只能在函数内部使用。也就是说this跟函数的声明没有任何关系,只有在函数或者方法被调用时才知道this的值。this关键字会根据环境变化,但是原创 2017-11-10 19:32:25 · 489 阅读 · 0 评论 -
js闭包
闭包是JavaScript中的一个难点,比较难理解。在讨论闭包之前先明确几个概念: 1、作用域:顾名思义,函数(对象)的可访问范围 2、执行环境:函数被调用时创建,并被推入环境栈中;函数执行完成,弹出该执行环境,把控制权返回给上一层执行环境。全局执行环境是window 3、变量对象:与执行环境一一对应,执行环境中的变量和函数保存在变量对象中,函数的变量对象叫活动对象 4、作用域链:各执行环境原创 2017-10-19 13:49:22 · 258 阅读 · 0 评论 -
JavaScript对象创建与继承总结
JavaScript中的每个元素都是一个对象,都继承自Object对象,因此可以说Object是JavaScript的根对象。首先说说JavaScript中创建对象的几种常见方式: 1、对象字面量创建对象,如:var myObject = { name: '张三', sex: '男', age: 25}//等价于 var myObject = new Object()原创 2017-10-18 19:13:56 · 284 阅读 · 0 评论 -
加载并解析XML DOM
前端开发中经常会遇见浏览器兼容性问题,为此,在写业务逻辑之前进行浏览器类型判断很有必要,下面给出几种常用游览器判断:function isIE() { if(navigator.userAgent.indexOf("MSIE") > 0 || (navigator.userAgent.toLowerCase().indexOf("trident") > -1 && navigator.use原创 2017-06-23 19:22:33 · 308 阅读 · 0 评论 -
jsonp解决跨域访问受限问题
json和jsonp是两个很容易混淆的概念,再介绍跨域访问之前简单介绍一下这两个概念吧。 1、json是一种应用广泛,而且很简单的数据描述格式,或者说是规则。 优点:1、基于纯文本,跨平台传递极其简单; 2、JavaScript原生支持,后台语言几乎全部支持; 3、轻量级数据格式,占用字符数量极少,特别适合互联网传递; 4、容易编写和解析,当原创 2017-06-23 16:03:00 · 750 阅读 · 0 评论 -
js实现仿百度地图拖动
最近在项目中需要用到仿百度地图拖动特效,于是花点事件研究了一下,发现通过scrollLeft和scrollTop方法改变滑块的位置可以实现类似效果,下面把研究结果拿出来分享一下。<div id="emap-panel" style="position: relative; overflow: hidden;"> <img id="emap-image"/></div>overflow: h原创 2016-12-28 14:05:11 · 6282 阅读 · 1 评论 -
监听鼠标滚轮事件
鼠标滚轮在web开发中是比较常用的,比如地图的放大缩小,改变select框的值等,今天就这个写一下。 首先,不同的浏览器有不同的滚轮事件。大致分为两种:onmousewheel(除Firefox以外的浏览器支持)和DOMMouseScroll(只有Firefox支持)。在使用滚轮前首先要注册滚轮事件,注册方法也不同,Firefox采用addEventListener监听,其他浏览器直接采用onmo原创 2016-12-28 11:13:16 · 5503 阅读 · 0 评论 -
uploadify控件上传文件and后台Struts2框架
带进度条的文件上传控件uploadify和Struts2框架原创 2016-10-18 10:47:26 · 1016 阅读 · 0 评论 -
Ajax应用,Struts2
ajax是目前js中web前台请求后台数据的主流方法,下面简单介绍一下。 在jQuery中使用ajax,首先在function一个方法,在方法中采用$.ajax({});使用ajax请求数据,如:function isHigherVersion(){ var newversion; //本地控件当前版本 var version = WebClient原创 2016-10-18 17:25:51 · 288 阅读 · 0 评论 -
在js中实现页面跳转
js方式的页面跳转 1.window.location.href方式 window.location.href="target.aspx"; 2.window.navigate方式跳转 window.navigate("target.aspx"); 3.window.loction.replace方式实现页面跳转,注意跟第一种方式的区别原创 2016-11-09 15:29:07 · 1061 阅读 · 0 评论 -
js 右键弹出自定义菜单
近期在项目中有一个右键菜单的需求,发现很多实现都比较复杂,于是自己花了一点时间稍微研究了一下,下面提供一个简洁的实现方法。 js声明部分://创建右键菜单var epMenu={ create:function(point,option){ var menuNode=document.getElementById('epMenu'); if(!menuNo原创 2016-11-24 17:17:06 · 8072 阅读 · 0 评论