标签:: Javascript

0

javascript单线程整理和理解

异步的另外一种含义是计算机多线程的异步处理。与同步处理相对,异步处理不用阻塞当前线程来等待处理完成,而是允许后续操作,直至其它线程将处理完成,并回调通知此线程。异步与多线程与并行不是同一个概念。 先问自己几个问题 javascript是单线程的吗? javascript如果是单线程为什么能让ajax异步发送和回调请求? setTimeout一定是按照它定的时间发生的吗? 浏览器是多线程的吗? e

0

解析和整理this的指向问题

本篇主要总结了this指针的指向问题。如果把问题细分,就可以更容易的得到判断。 以普通函数的方式调用(Invocation as a function)1234function test(){ console.log(this);}test(); 结果是window。结论是当我们以一个函数的方式调用的时候,this就是指向window全局作用域。定义在全局的函数, 函数的所有

0

javascript的垃圾回收机制

和java,c#一样,javascript也有自动垃圾回收的机制,比如说c++和c就没有自动垃圾回收机制。可能有这么一种倾向,垃圾回收机制必须有一种平台来进行回收。比如说下面将的javascript的执行环境V8就会负责管理代码执行过程中的垃圾回收。 javascript具有自动垃圾回收机制,执行环境会负责管理代码执行过程中使用的内存。原理就是找出那些不再继续使用的变量,然后释放其占有内存。这整个

0

js小例子之自定义右键菜单和jquery拖动元素

总结两个小实例,一个是jquery拖动元素,一个是js自定义右键菜单。感觉jquery的API都快忘了,所以又写了个jquery的。 js自定义右键菜单我大概的想法是先隐藏列表菜单,当监听到oncontextmenu时,显示列表并定位到鼠标点击的地方。当页面有点击事件的时候,再来让列表显示。 这里可以用preventDefault或者return false;来阻止右键的默认行为。 代码如下:1

0

页面重流和回流以及优化的整理和学习

浏览器从下载文档到显示页面的过程是个复杂的过程,这里包含了重绘和重排。各家浏览器引擎的工作原理略有差别,但也有一定规则。简单讲,通常在文档初次加载时,浏览器引擎会解析HTML文档来构建DOM树,之后根据DOM元素的几何属性构建一棵用于渲染的树。 渲染树的每个节点都有大小和边距等属性,类似于盒子模型(由于隐藏元素不需要显示,渲染树中并不包含DOM树中隐藏的元素)。当渲染树构建完成后,浏览器 就可以

0

javascript事件委托

先举个现实生活中委托的例子。比如有3个人在同一个公司里,星期天他们得知他们的快递都要来。如果不用委托,意味着这三个人都要去一次楼下,而且要一直等,直到他们的快递来。但是我们知道公司都是有前台的,所以一般快递公司都是把东西直接放到前台,然后由前台打电话让他们来领取。这里的前台服务就是委托。 在比如电商的模式(如淘宝),如果没有淘宝,大家都要一家一家的去看衣服,找衣服,买衣服。但是有了淘宝的这种类似委

0

HTML5 Drop and Drag API学习与整理

Drop和Drag是能够DOM元素拖动与释放的API。过去我们也有一个能够实现拖动与释放的流程。今天总结一下,可以看到新的API是给我们提供了很大的便利和简化了许多代码的。 拖拽的旧方法总的是下面下面的三个流程:(js以前是没有直接拖拽的方法的,所谓的拖拽也就是把鼠标拖拽的偏移值赋值给拖动的元素,这样就好像形成一个假象,我是可以拖拽的,实际上该元素就是我们硬性规定他的新新位置的) 通过mouse

0

解决跨浏览器问题的几个代码段总结

Ajax对象:XMLHttpRequest和IE的ActiveX对象这两种对象的构造函数有两种不同的格式,但却共享了同一种功能和方法。一旦创建完初始的对象并将其赋值给一个对象,也就解决了Ajax的跨浏览器问题。1234567var xmlhttp = false;if(window.XMLHttpRequest){ xmlhttp = new XMLHttpRequest(); xml

0

理解DOM中的事件流的概念

什么是事件流流:用术语说流是对输入输出设备的抽象。以程序的角度说,流是具有方向的数据。 事件流:从页面中接收事件的顺序。也就是说当一个事件产生时,这个事件的传播过程,就是事件流。 事件:用户或者浏览器自身执行的某个动作,比如load,click,mousemove等 事件处理程序:相应处理某个事件的函数叫做事件处理函数(也叫做事件侦听器) 比如说React中的单向数据流,Node中的流,又或是今

0

javascript同步和异步加载及async和differ区别

主要弄清楚几个概念:异步加载(async loading),延迟加载(lazy loading),延迟执行(lazy execution),async 属性, defer 属性。 javascript的同步,异步,延迟加载 加载的网络 timeline 是瀑布模型,而异步加载的 timeline 是并发模型。 同步加载同步模式,又称阻塞模式。javascript在默认情况下是会阻塞加载的。当前面的