木子屋 Dnawo's BLOG

2009-03 归档

共 41 篇

提升JavaScript运行速度之函数篇

这篇是Nicholas讨论如果防止脚本失控的第二篇,主要讨论了如何重构嵌套循环、递归,以及那些在函数内部同时执行很多子操作的函数。基本的思想和上一节chunk()那个例子一致,如果几个操作没有特定的执行顺序,而且互相不是依赖关系,我们就可以通过异步调用的方式加以执行,不止可以减少执行的次数,还可以防止脚本失控。本文还介绍了通过memoization技术取代递归的方法。 【原文标题】Speed up your JavaScript, Part 2 【原文作者】Nicholas C. Zakas 以下是对原文的翻译: 上周我在《too much happening in a loop》(译文)这篇文章中介绍了JavaScript运行时间过长的第一个原因。相似的情况有时也出现在函数的定义上,函数也可能因为使用不当而过载使用。通常情况是函数内包含了过多的循环(不是在循环中执行了过多的内容),太多的递归,或者只不过是太多不相干但又要一起执行的操作。…

提升JavaScript运行速度之循环篇

根据Nicholas的说法,有四种代码会拖慢脚本的运行,并最终导致脚本失控。分别是次数过多的同步循环、庞大的函数体、不恰当的递归和不合理的DOM调用。这篇着重讲第一个原因。最后给出了一个开发模式,替换传统的循环结构,可以完全避免脚本失控的状况发生。 原文标题:Speed up your JavaScript, Part 1 原文作者:Nicholas C. Zakas 在我 上一篇帖子(译文)中,谈到了各个浏览器究竟会在什么情况下弹出脚本失控提示,对于Internet Explorer来说,当浏览器执行了数量过多的语句时就会停止执行脚本,而其他的浏览器,则是持续执行脚本超过一定时间的时候就会给出提示。而我们要探讨的核心问题,不是这些浏览器如何探测失控的脚本,而是我们如何才可以让脚本运行的更快一些,从而避免这些警告。…

浏览器根据什么来判定脚本失控?

在Web开发的时候,经常会遇到的一种情况就是浏览器提示脚本运行时间过长,停止还是继续,无论你选择什么,相信你都会想尽一切办法让这个对话框远离你的用户们。可你是否知道,这些不同的浏览器究竟是如何判断,哪些脚本处于“失控”状态么?本文作者,就从Internet Explorer、Firefox、Safari、Chrome和Opera五种浏览器,分析了这个情况出现的原因。 原文标题:What determines that a script is long-running? 原文作者:Nicholas C. Zakas 以下是对原文的翻译: Web开发者经常遇到并必须及时处理的问题就是“提示脚本运行时间过长的提示框”(或者称为“失控脚本提示”),这些令人讨厌的对话框会在你的脚本 执行时间过长的时候出现。对于Web开发者的基本准则就是,无论什么时候,都不要让用户看到这些对话框,因为这会给人一种代码缺乏结构化的印象,更简单的 说,你的代码负担太重了。…

有趣的Javascript数组

本文是Rick Strahl在使用Javascript数组上的经验之谈,在一些细微的地方介绍了Javascript在处理数组上,相对于其他开发语言的不同之处,有些可能是我们自己想当然的事情,但实际上不是那么回事,呵呵。具体涉及到Javascript数组初始化、length、扩展属性等。 【原文】Javascript Array Fun 【作者】Rick Strahl 【译文】http://cuimingda.com/2009/01/javascript-array-fun.html 【译者】明达 以下是对原文的翻译: Josh在我之前的一篇帖子中留下了一条评论,指出在CSS property watcher component中存在一些小错误,这是一个jQuery插件,将CSS属性保存在数组中,并且跟踪这些值的变化,当发现CSS属性值发生变化时,会抛出一个事件,用户可以在事件中做出相应的处理。…

flash wmode参数详解

在做web开发中可能会遇到flash遮挡页面中元素的情况,无论怎么设置flash容器和层的深度(z-index)也无济于事,现有的解决方案是在插入flash的embed或object标签中加入"wmode"属性并设置为wmode="transparent"或"opaque",但wmode属性到底是什么意义,为什么可以解决这个问题呢? window mode(wmode) wmode即窗口模式总共有三种,看看当年Macromedia官方的说法: ·Window: Use the Window value to play a Flash Player movie in its own rectangular window on a web page. This is the default value for wmode and it works the way the classic Flash Player works. This normally provides the fastest animation performance.…

把你的名字刻到IE上

将以上内容保存成reg文件,双击运行导入注册表,再打开IE看看,你的名字是不是在IE标题栏中了

onbeforeunload事件

说明:目前三大主流浏览器中firefox和IE都支持onbeforeunload事件,opera尚未支持。 用法:  ·object.onbeforeunload = handler  · 描述:  事件触发的时候,如果handler有返回值将会弹出一个有确定和取消的对话框,确定则离开页面,取消则继续待在本页。handler的返回值将作为该对话框的显示文本。 触发于:  ·关闭浏览器窗口;  ·通过地址栏或收藏夹前往其他页面的时候;  ·点击返回,前进,刷新,主页其中一个的时候;  ·点击一个前往其他页面的url连接的时候;  ·调用以下任意一个事件的时候:click,document write,document open,document close,window close,window navigate,window NavigateAndFind, location replace, location reload, form submit;…

Excel 2000高级筛选应用:筛选和查重

使用Excel 2000自带的高级筛选功能可以非常方便的对工作表中的数据进行筛选、查重,在菜单中依次选择"数据→筛选→高级筛选"即可打开筛选对话框: 为了方便下边说明,我们输入了一些数据做测试: 一、数据筛选篇 1.筛选出年份大于2008-12-1的记录 方式:在原有区域显示筛选结果 数据区域:Sheet1!$B$1:$B$8 条件区域:Sheet1!$E$1:$E$2 结果: 书名 年份 价格 DDD 2009-1-1 50 BBB 2009-2-1 60 EEE 2009-3-1 10 2.筛选出价格大于30的记录 方式:在原有区域显示筛选结果 数据区域:Sheet1!$C$1:$C$8 条件区域:Sheet1!$F$1:$F$2…

Excel 2000 同一工作表查重(支持多列查重)

在Access、mssql中可以使用SQL语句进行查重,但在Excel中就没那么容易了,查找了Excel相关资料后,写了个VBA函数(宏)来实现: 使用方法:在宏管理菜单中输入宏名字"查重",点击创建按钮后粘贴上边代码保存即可。

Excel常见对象

1.工作簿:Workbooks、Workbook、ActiveWorkbook、ThisWorkbook Workbooks集合包含Excel中所有当前打开的Excel工作簿,亦即所有打开的Excel文件;Workbook对应Workbooks中的成员,即其中的Excel文件;ActiveWorkbook代表当前处于活动状态的工作簿,即当前显示的Excel文件;ThisWorkbook代表其中有Visual Basic代码正在运行的工作簿。 在具体使用中可用Workbooks(index)来引用Workbook对象,其中index为工作簿名称或编号;如Workbooks(1)、Workbooks("年度报表.xls")。而编号按照创建或打开工作簿的顺序来确定,第一个打开的工作簿编号为1,第二个打开的工作簿为2……。…