摘要: 使用jQuery.append()、jQuery.html()方法时,如果其中内容包含';$('#test').html(xssStr);控制台会打印出“1”。同样的情况也存在于jQuery.append(),因为jQuery.html()内部也是调用jQuery.append()。既然会存在执行脚... 阅读全文
posted @ 2015-02-28 10:30 赵东禹 阅读(4539) 评论(0) 推荐(0) 编辑
摘要: JavaScript RegExp对象的exec()方法用来匹配字符串,它的行为与match()有些不同。对于RegExpObject.exec(),w3school上面是这样介绍的:exec() 方法的功能非常强大,它是一个通用的方法,而且使用起来也比 test() 方法以及支持正则表达式的 St... 阅读全文
posted @ 2014-10-08 11:02 赵东禹 阅读(1513) 评论(0) 推荐(0) 编辑
摘要: 上篇文章介绍了JavaScript异步机制,请看这里。JavaScript异步机制带来的问题JavaScript异步机制的主要目的是处理非阻塞,在交互的过程中,会需要一些IO操作(比如Ajax请求,文件加载,Node.js中的文件读取等),如果这些操作是同步的,就会阻塞其它操作。异步机制虽然带来了许... 阅读全文
posted @ 2014-08-24 21:15 赵东禹 阅读(2366) 评论(3) 推荐(3) 编辑
摘要: 单线程异步执行的JavaScriptJavaScript是单线程异步执行的,单线程意味着代码在任务队列中会按照顺序一个接一个的执行。异步代表JavaScript代码在任务队列中的顺序并不完全等同于代码的书写顺序,比如事件绑定、Ajax、setTimeout()等任务的发生时间是“不可被预期”的。既然... 阅读全文
posted @ 2014-08-19 19:55 赵东禹 阅读(9420) 评论(12) 推荐(8) 编辑
摘要: 业务场景:后端更新数据推送到客户端(Java部分使用Tomcat服务器)。后端推送数据的解决方案有很多,比如轮询、Comet、WebSocket。1. 轮询对于后端来说开发成本最低,就是按照传统的方式处理Ajax请求并返回数据,在学校的时候实验室的项目一直都采用轮询,因为它最保险也最容易实现。但轮询... 阅读全文
posted @ 2014-08-11 19:50 赵东禹 阅读(9986) 评论(3) 推荐(5) 编辑
摘要: 一、是捕获还是冒泡昨天被问到一个问题:事件流有几个阶段?在这几个阶段中,事件一共发生几次?问题很简单,但对于事件一共发生几次有点乱。总觉得捕获也能触发事件、冒泡也能触发事件,可事件确实只发生了一回啊!所以写篇文章梳理一下,对此很清楚的同学可以跳过了。子问题1:事件流有几个阶段?“DOM2级事件”规定的事件流包括三个阶段:事件捕获阶段、处于目标阶段和事件冒泡阶段。1. IE9以前的IE浏览器都只支持后两个阶段,也就是处于目标阶段和事件冒泡阶段。这个顺序很好理解,在嵌套层次最深的节点上接收事件,然后逐级向上传播到父级节点。2. 早期的Netscape团队提出的另一种事件流叫做事件捕获。即顶层节点应 阅读全文
posted @ 2013-09-27 18:46 赵东禹 阅读(1251) 评论(2) 推荐(2) 编辑
摘要: 下面这个栗子,CSS选择器它是如何工作的?.mod-nav h3 span {font-size: 16px;}如果不知道匹配规则,可能的理解是从左向右匹配:先找到.mod-nav,然后逐级匹配h3、span,在这个过程中如果遍历到叶子节点都没有匹配就需要回溯,继续寻找下一个分支。但事实上,CSS选择器的读取顺序是从右向左。还是上面的选择器,它的读取顺序变成:先找到所有的span,沿着span的父元素查找h3,中途找到了符合匹配规则的节点就加入结果集;如果直到根元素html都没有匹配,则不再遍历这条路径,从下一个span开始重复这个过程(如果有多个最右节点为span的话)。在某条CSS规则下( 阅读全文
posted @ 2013-09-26 16:41 赵东禹 阅读(10336) 评论(12) 推荐(11) 编辑
摘要: 原型在JavaScript中,每个函数都有一个prototype属性,这个属性是一个指针,指向该函数的原型对象。这个原型对象为所有该实例所共享。在默认情况下,原型对象包含一个属性叫做constructor,它指向prototype属性所在的函数指针。图片和例子来自《JavaScript高级程序设计(第三版)》。function Person () {}Person.prototype.name = 'Nicholas';Person.prototype.age = 29;Person.prototype.job = 'Software Enginner';Per 阅读全文
posted @ 2013-09-10 18:29 赵东禹 阅读(1540) 评论(3) 推荐(3) 编辑
摘要: demo本文用到的两个CSS3属性:transform、animation一、HTML 二、CSS.ajax-loading { position: relative; width: 100px; height: 100px; margin: 25px; -webkit-transform: scale(0.5); transform: scale(0.5); -webkit-animation: rotateThis 1s infinite step-start; animation... 阅读全文
posted @ 2013-08-21 16:40 赵东禹 阅读(972) 评论(0) 推荐(2) 编辑
摘要: 还不是完全清楚如何使用.on()进行jQuery事件绑定的同学先看这里http://api.jquery.com/on/jQuery绑定事件的方法有几种,推荐使用.on()方法绑定,原因有两点:1.on()方法可以绑定动态添加到页面元素的事件比如动态添加到页面的DOM元素,用.on()方法绑定的事件不需要关心注册该事件的元素何时被添加进来,也不需要重复绑定。有的同学可能习惯于用.bind()、.live()或.delegate(),查看源码就会发现,它们实际上调用的都是.on()方法,并且.live()方法在jQuery1.9版本已经被移除。bind: function( types, dat 阅读全文
posted @ 2013-08-14 15:50 赵东禹 阅读(6152) 评论(5) 推荐(4) 编辑