黄短短

JavaScript的闭包到底是什么?

BY: 黄短短 / DATE: 2012-06-18 / POSTED IN: 前端开发 / VIEWS: 12942 / COMMENTS: 2

刚进入JavaScript学习的时候,接触的概念中比较难以理解的就是闭包(closure)。网上和书上笼统的定义——所谓“闭包”,指的是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分。

今天结合《JavaScript权威指南》中关于JavaScript变量的作用域的讲解、网上一些博客和资料以及工作中实际运用再来深入理解一下闭包的概念。

lyndon

Ajax无刷新分页可以尝试的性能优化方法

BY: lyndon / DATE: 2012-06-01 / POSTED IN: 前端开发 / VIEWS: 10999 / COMMENTS: 5

Ajax无刷新分页,已经是一个大家比较熟悉的事物了,大概就是web前端页面上有一个js的方法,通过Ajax去请求服务器端的分页数据接口,拿到数据后再在页面上创建html结构,展现给用户,类似于下面这样:

rocky

YUI3:js加载过程及时序问题

BY: rocky / DATE: 2012-05-07 / POSTED IN: 前端开发 / VIEWS: 7565 / COMMENTS: 1

时序问题在javascript中比较常见,尤其是在网络环境不稳定时以及某些浏览器本来版本中比较多,遇到此类问题,往往会使开发者非常头痛,问题的重现需要特定的环境,是偶发的,不容易重现。对于有经验的开发者,大部分的时序问题都可以在代码中避免,对于浏览器,js代码的执行是单线程的,同一时刻只有一段js代码在执行,js的执行主要是通过两种方式来触发:

石竹

前端开发利器—FIDDLER

BY: 石竹 / DATE: 2012-02-17 / POSTED IN: 前端开发 / VIEWS: 60477 / COMMENTS: 13

1.Fiddler相对其他调试工具的优势

HttpWatch 和 Firebug绝大多数前端开发人员都比较熟悉,但是HttpWatch虽然可以抓到每个 HTTP 请求的全部数据,但无法修改返回的数据;尽管Firebug可以修改 HTML和CSS,但是在调试CGI接口时无法干预HTTP请求的参数值和CGI返回的数据。而 Fiddler作一个 HTTP 调试代理,不但能够记录客户端同服务器之间的所有 HTTP 通讯数据,还能够修改请求数据和返回数据,也叫做“构造请求”和“模拟响应”。除此之外, 添加了willow插件的Fiddler 还可以:统计数据包、修改Host、请求重定向、编码转换、低网速模拟、断点调试以及过滤HTTP请求…Fiddler包含了一个强大的基于事件脚本的子系统,并且能够使用.net框架语言扩展。相信你已经迫不及待安装它了。

大猫和小耗子

调皮的javascript

BY: 大猫和小耗子 / DATE: 2012-01-16 / POSTED IN: 前端开发 / VIEWS: 12179 / COMMENTS: 6

javascript是一门有趣的语言,不仅有趣而且调皮,不同的内核的浏览器在解析的时候表现会有些差异,今天主要是抛砖引玉,和大家一起讨论一些在实际开发中比较常见但同时可能并没有过于在意的javascript表现。这里先做几个约定:
瓦力

字符串的连接性能分析

BY: 瓦力 / DATE: 2011-12-27 / POSTED IN: 前端开发 / VIEWS: 5333 / COMMENTS: 1

字符串连接一直是javascript中性能较低的操作,也是最频繁的操作;在JavaScript中字符串是不可变的,即它们的值不可以改变,这意味着要创建中间字符串来存储连接的结果;

+ 和 +=操作符提供了连接字符串最简单的方法,我们先看两个例子:

Zawa

Javascript之UI线程与性能优化

BY: Zawa / DATE: 2011-11-21 / POSTED IN: 前端开发 / VIEWS: 19730 / COMMENTS: 6

在浏览器中,Javascript执行与UI更新是发生在同一个进程(浏览器UI线程)中的。UI线程的工作基于一个简单的队列系统,任务会被保存到队列中直到进程空闲时被提取出来执行。所以Javascript的执行会阻塞UI更新;反之,UI更新也会阻塞Javascript的执行。给用户的表现就是浏览器在工作时短暂或长时间失去反应,用户的操作不能及时得到响应。而UI线程的阻塞很多时候是由于我们要在代码里进行长时间的脚本运算,超过了浏览器限制,导致浏览器失去响应,冻结用户界面。

所以,编码时对于耗时较长的运算我们不得不考虑UI线程的问题,《High Performance JavaScript》建议javascript操作耗时不应该超过100毫秒,那么这个100毫秒是如何得出来的呢?

瓦力

页面自动跳转的实现方式探讨

BY: 瓦力 / DATE: 2011-11-09 / POSTED IN: 前端开发 / VIEWS: 82581 / COMMENTS: 3

最近新版财付通正式上线了,需要将用户切换到新版来,即需要将旧版的首页实现自动跳转的功能;首先,让我们一起来了解下网页自动跳转的常用实现方式有哪些吧!

方法一:使用meta标签
Meta标签是html不可缺少的标签之一,是用来在HTML文档中模拟HTTP协议的响应头报文;当我们定义属性http-equiv为refresh时,打开此WEB页,浏览器将根据content规定的值在指定时间内跳转到相应页面,content=”秒数;url=网址”就是定义停留多长时间后,跳转到指定的网址;

小网

跨域,不再纠结

BY: 小网 / DATE: 2011-10-31 / POSTED IN: 前端开发 / VIEWS: 58835 / COMMENTS: 3

“跨域了,实现不了。”
“跨协议了,实现不了。”
“两边端口不一致,不能相互访问。”
……

这些字眼您是不是经常发生在你的身上,跨域一直是前端开发人员纠结的事情,好在HTML5提供的postMessage接口给前端人员提供了完美的解决方案。不过可恨的IE还得用猥琐的iframe代理来实现跨域操作。接下来讲解如何实现不同浏览器之前的跨域通信。

lyndon

Dom元素自定义“value”属性可能导致的一个灵异问题

BY: lyndon / DATE: 2011-09-09 / POSTED IN: 前端开发 / VIEWS: 173081 / COMMENTS: 10

这个问题还没有经过深入的分析和确认,先跟大家分享一下表象和个人初步的判断。

目前最直接的是IE8里面会有这个问题。我们有时候可能会通过给DOM元素自定义一些属性用以保存数据,比如通常<li>标签是没有“value”这个属性的,但实际上<li value=”XXX”>这个写法,我们也是可以正常的去读取或设置“value”这个属性,相信大家也会经常这样使用。现在很出现的一个很灵异的问题是,至少在IE8里面,这个value属性好像被默认为整型了,如果用脚本设置li.value=“some string”,实际上value值会被设置成1。如果用脚本设置li.value=12345678912 这样比较长的数字,可能会溢出,脚本会报错,而且还不能强制转换成字符串,因为转了也没有用….也许这应该算是IE8的一个BUG,不巧被我碰上了,还没有去验证其他浏览器会怎么样。但是可以肯定的是,即便是在IE8里面,只要这个属性名不是“value”,这个问题就不复存在了。

鉴于IE8或者IE系列的浏览器目前还是我们比较常用的浏览器,大家以后如果需要再使用自定义的属性时,尽量不要使用value这个名字…

有兴趣的同学可以去验证一下… 或者还可以得出其他结论,我这里就算抛砖引玉吧。