leon的后花园


  • 首页

  • 热门

  • 前端

  • 安全

  • 思考

  • 归档

  • 标签

async源码解析

发表于 2015-08-08   |   分类于 前端   |  

前言

异步是javascript一个标志,尤其在nodejs中,操作数据库等往往带来大量的异步调用,所谓的“callback hell”由此而来,async作为成名较早的异步流程库,API设计属于异步1.0时代,其思想非常接近主流思考方向,源码必然很有参考价值,于是找时间看了一下其源码中的几个主要方法。

阅读全文 »

dom兼容性问题收集

发表于 2015-08-07   |   分类于 前端   |  

位置相关

  • 页面滚动距离(scrollTop/scrollLeft):

IE9+ & WEBKIT: window.pageYOffset == window.scrollY;
兼容写法 :

var supportPageOffset = window.pageXOffset !== undefined;
var isCSS1Compat = ((document.compatMode || "") === "CSS1Compat");
var x = supportPageOffset ? window.pageXOffset : isCSS1Compat ? document.documentElement.scrollLeft : document.body.scrollLeft;
var y = supportPageOffset ? window.pageYOffset : isCSS1Compat ? document.documentElement.scrollTop : document.body.scrollTop;
`document.compatMode`表示是否是标准文档模式。 + 窗口大小 IE9+ & webkit: `window.innerHeight`表示浏览器网页部分可视区域高度。`window.outerHeight`表示浏览器高度。 兼容写法:
var h = window.innerHeight
|| document.documentElement.clientHeight
|| document.body.clientHeight;

window.outerHeight 一般来说等于 window.screen.availHeight
包含了浏览器工具条的高度,而window.screen.height是指屏幕的高度。

  • 各种高度

一篇详细的测试文章: offsetHeight, clientHeight与scrollHeight的区别

构建一个支持https的透明代理

发表于 2015-07-26   |   分类于 前端   |  

需求

在做 多host工具 项目时,我需要一个透明代理,让浏览器的所有的请求通过一个nodejs server转发,从而可以实现修改请求的目的。问题就是,如何构建一个能够同时支持http && https的web proxy。

阅读全文 »

移动开发学习笔记

发表于 2015-07-17   |  

ECMAScript3 VS ECMAScript5 - 代码执行流程

发表于 2015-04-25   |   分类于 前端   |  

##ECMAScript3 代码执行流程

###ES3中可以执行的代码分为下面三种:

  • 全局代码
  • 函数代码
  • eval代码

ECAMScript代码进入上述的每一种代码环境开始执行之前,会创建一个叫做 执行上下文(Execution Context) 的东西,它存在于这个代码环境执行的整个过程,在退出代码环境的时候,也退出了对应的上下文。

简单的来说,一段javascript代码,从上到下,每次进入到上述3种之一的代码,就会创建一个上下文,可执行代码执行完了之后这个上下文也会被销毁,整个程序自然而然可以想象的到,内部维护了一个栈,这个栈的顶端就代表着当前的执行环境,每进入一个新的代码执行环境,就创建并推入上下文栈一个新的上下文,退出的时候从上下文栈中推出。

可执行上下文 我们简称 EC。

阅读全文 »
1234…6
leon.lee

leon.lee

不谈兴趣,不谈情怀,计算机就是我的职业,像一个专业的人去思考,去coding

27 日志
3 分类
13 标签
GitHub 知乎
© 2016 leon.lee
由 Hexo 强力驱动
主题 - NexT.Pisces