您现在的位置:首页
--> JavaScript
经常看到 expando 这个单词,经常被“忠告”不要给 DOM 元素随意添加 expando 属性。 下面这张图也代表 expando: 究竟什么是 expando 呢? expando 先看 Wiktionary 上的词条: Etymology Perhaps a short form of expandable object. Noun expando (plural expandos) (computing, programming) A property added to an object at run-time. 从语源上讲,expando 可能是 expandable object 的缩写。注意“可能”,并不确定。 从使...
首先,我们一定不能忘记:对性能优化最重要的是内容优化。不过这不是我们前端能说了算的,我们只能努力从前端的角度给产品经理和运营人员提建议,因此内容优化不纳入性能优化范畴。 从去年开始,到 Velocity 2010 大会中 Fast By Default 口号的提出,YSlow / PageSpeed / Msfast / dynaTrace / WebPageTest 等工具各领风骚,YSlow 几乎成了每个前端的标配。 YAHOO 的 34 条军规,光芒四射,无论后台开发还是运营人员,或多或少都...
Array的push与unshift方法都能给当前数组添加元素,不同的是,push是在末尾添加,而unshift则是在开头添加。从原理就可以知道,unshift的效率是较低的。原因是,它每添加一个元素,都要把现有元素往下移一个位置。但到底效率差异有多大呢?下面来测试一下。测试环境的主要硬件:CPU T7100(1.8G);内存4G DDR2 667;硬盘5400转。主要软件:操作系统为Windows 7;浏览器为Firefox 3.6.9。
记录一下弹出窗口的兼容方案
很多网站在填写表单的时候,都可以看到这样一种UI,input[type=text]里面有提示的文字,当鼠标点进去之后提示文字就消失了。本文介绍用HTML 5中input的placeholder特性来实现这个效果,以及兼容方案。
在很多场景下,要判断一个元素是不是包含另一个元素,本文记录了一些方法。
• 前端模板引擎
说起模板引擎,很多人会认为这是后台的东西(如PHP的Smarty、Java的Velocity),跟前端没有关系。然而,随着前端的逻辑变得越来越复杂,引入模板技术已经是非常必要了。模板引擎的主要功能就是把变化的数据融入到不变的模板中,并生成最终结果。目前,前端的主要数据格式无非是XML和JSON。如果选择XML作为数据格式,XSLT就是最佳的模板语言。大三时做的一个社团网站就是采用了这样的模式。XML+XSLT的缺点非常明显:兼容性问题。XML...
最近有网友在留言板里问到jRaiser和jQuery的冲突问题,特此写一篇文章进行解释。冲突的根源众所周知,jQuery是通过一个全局变量$来引用的,而jRaiser加载时也占用了$。因而冲突的根源就是全局变量$。说得明白点:当jQuery和jRaiser共存的时候,$究竟是谁?分析jQuery和jRaiser的源代码可以知道,这两个库在加载的时候都会占用$变量。因此,按照覆盖的原理,谁后加载,$变量就是谁。如何解决冲突别名法除了$,jQuery和jRaiser都占用...
1、 HTTP服务器. 2、性能测试工具推荐 3、 图片篇. 4、 如何加载JS,JS应该放在什么位置. 5、 为什么要减少请求数,如何减少请求数. 6、 减少请求,响应的数据量. 7、JS、CSS的合并、压缩、缓存管理 8、页面呈现、重绘、回流。 9、该如何加载google-analytics(或其他第三方)的JS. 10、疯狂的HTML压缩. 11、flush让页面分块,逐步呈现 12、了解CSS的查找匹配原理,让CSS更简洁、高效
• 从另外两道题说起
最近貌似流行做Javascript题,Dmitry A. Soshnikov这又出了几道题-The quiz,还可以自我评分,有兴趣的可以去试试看自己可以得几分。本文主要挑了2道比较绕的题目来说几个知识点: 1. Javascript中的”,”(逗号)操作符 2. Javascript中”;”(分号)的重要性 3. Javascript中with块中的作用域下面请看题目。
经常要弄一些联动菜单之类的效果,用js操作option就不可避免了。 一般这种特效需要我们实现两种操作: 清空option 根据ajax返回结果,动态创建option js清空option 清空option 不是很难的操作。我们只需要遍历现有option,将其每个子元素都置空即可。
一个对象有length属性,数字的下标,和一个splice方法,在firebug下用console.debug()方法就会输出一个数组。
文本内容主要包括以下几点: 什么是repaint/reflow? 什么情况下会触发浏览器的repaint/reflow? 浏览器自身所作的优化如何优化你的脚本来减少repaint/reflow? 一、什么是repaint/reflow? 页面在加载的过程中,需要对文档结构进行解析,同时需要结合各种各样的样式来计算这个页面长什么样子,最后再经过浏览器的渲染页面就出现了。这整个过程细说起来还是比较复杂,其中充满了repaint和reflow。对于DOM结构中的各个元素都有自己...
预解析时,完成了函数a的定义,即在window对象上添加变量a,并赋值为函数定义。之后遇到”var a;”,由于当前作用域已经有变量a,因此不需要做什么工作。在运行时,由于并没有给变量a赋值,因此原来的函数定义并没有覆盖,因此最终变量a是一个函数。如果将”var a;”改为”var a=1;”,则最终a的值为1。
5. 除掉重复的节点5.1 考虑selector: "div div"上面的步骤看下来还比较容易接受,那下面有头疼的问题了。HTML代码还是上面的代码,但换个selector来考虑,假设selector是:“div div”,如果仅是用documentElement.getElementsByTagName('div'),再循环该集合获取'div'而没有形成上述的NodeFilter函数进行过滤,再合并的时候获取的节点集合就会有重复了。为说明问...
昨天在看JavaScript优化脚本时,其中有一条是使用三元运算符以及switch语句。关于优化代码时,使用Switch Case比If Else要快,这点我们知道,但是三元运算符呢?在JavaScript精粹一书中提到,使用三元运算符比使用If Else语句要快。关于原因,书中并没有过多的介绍,我想这大概是因为使用三元运算符要比使用If Else代码要优化的多吧。好了,下面我们来看一个使...
关于Javascript跨域问题的解决方案已在之前的一片文章中详细说明,除了文中提到的3种解决方案之外,在今年的baidu salon分享会上黄方荣主讲的《WEB数据交互的艺术》中提到一个非常优雅绝妙的解决方案!话不多说,直接上解决方案原理图:该图要解决的问题说明如下:在AAA.com域名下的index.htm页面中内嵌了BBB.com域名下的一个页面index.htm,正常情况下iframe...
近3天十大热文
- [68] IOS安全–浅谈关于IOS加固的几种方法
- [66] Twitter/微博客的学习摘要
- [64] 如何拿下简短的域名
- [61] android 开发入门
- [60] find命令的一点注意事项
- [59] Go Reflect 性能
- [57] 流程管理与用户研究
- [56] 图书馆的世界纪录
- [56] Oracle MTS模式下 进程地址与会话信
- [55] 读书笔记-壹百度:百度十年千倍的29条法则
赞助商广告