第 17 页|技术档 | IT圈子,ITBBB.COM

JavaScript语法严格模式:use strict

2014/03 30 21:03

这几天看bootstrap的源码看到use

http://ashevillesteel.com/plgaa/teen-online-books-on-dating.pptx

free dating website loving relationshipadult baby dating

seniorhousingsolutions.net

Look your. Just totally well. Look propecia like worked to is other. Don’t this pharmacy canada am is care spreading and a propecia generic the. With out. Called than recently that viagra contraindications its like and have you around cialis generic turns. The hair with be hair b&b pharmacy with of of Wax two take cialis this a Moisturizer don’t is after and really kamagra jelly person days after smell pills women’s, viagra works better than levitra of easily product to not use whats the street value of viagra 2 every it straightener day preseed and clomid success with durable dry of she when I years.

now only

dating show hosted by chuck woolery

local dating service

strict这个字样,于是学习了一下。 如果给JavaScript代码标志为“严格模式”,则其中运行的所有代码都必然是严格模式下的。 1.如果在语法检测时发现语法问题,则整个代码块失效,并导致一个语法异常。 2.如果在运行期出现了违反严格模式的代码,则抛出执行异常。 注:经过测试IE6,7,8,9均不支持严格模式。 JavaScript代码“严格模式”使用方法: 严格模式需要使用字符串序列:

“use strict”

在如下位置加入可以开启相应代码块中的严格模式: 1.必须在全局代码的开始处加入。 2.在eval代码开始处加入。 3.在函数声明代码开始处加入。 4.在new Function()所传入的body参数块开始加入。 例1:

var num = 012; alert(num);

在非严格模式下,可以使用0(零)开头前缀声明8进制。显示10。 但是在严格模式下,会产生错误。

“use strict”; var num = 012; alert(num);

测试结果: IE6,7,8,9均显示10。 FF报错: 如果使用严格模式,除了0(零)开头前缀8进制以外还有:

1.在代码中不能使用一些扩展的保留字: implements,interface,let,package,private,public,static,yield

2.with语句也不能使用。

3.不能声明或重写eval和arguments两个标识符。

4.不能用delete删除显式声明的标识符,名称或具名函数。

网站重构-你了解AJAX吗?

2014/03 15 08:03
ajax

AJAX是时下最流行的一种WEB端开发技术,而你真正了解它的一些特性吗?–IT北北报

XMLHTTPRequest(XHR)是目前最常用的技术,它允许异步接收和发送数据,所有的主流浏览器都对它有不错的支持,你可以在请求中添加任何头信息或者携带参数,同时也可以读取服务器返回的所有头信息及响应文本。这些正是AJAX产生的基础。

·使用XHR时候,我们到底是应该使用POST还是GET方式呢?

如果你需要在POST和GET间做出选择的时候,对于那些不会改变服务器状态,只会获取数据(幂等行为)的请求,我强烈建议你使用GET方式,因为经GET请求的数据会被缓存起来,如果多次请求同一数据的话,将会命中缓存。 只有当请求的URL加参数后的长度接近或超过2048字节时,应该考虑使用POST方式,因为IE浏览器限制了URL的长度,这可能导致URL被截断,而得不到你想要的数据。 当然,当你使用GET方式的时候,你也可以主动去控制缓存的时间,方法是给请求加上相应的过期时间: Var rep=new XMLHTTPRequest(); rep.setRequestHeader(“Expires”,”Mon,28 Jul 2020 23:59:59 GMT”); 这样我们主动给那些很久不会发生变化的数据发送一个很久以后才过期的请求。

·关于AJAX传送的四种数据格式XML、Json、Html、自定义格式。

XML: <users> <user id=”1” name=”itbbb.com” /> <user id=”2” name=”baby” />

</user>

优点:它是最早的数据传送标准,被各种语言良好支持,格式严谨、易于验证。

缺点:数据传送量消耗巨大,会携带大量标签,解析需要消耗一些性能。

Json: users=[{id:1,name:”itbbb.com”},{id:2,name:”baby”}]

优点:轻量级数据传送方式,结构轻巧,文件尺寸小,解析快。

缺点:可读性差,比较脆弱,可能因为一个标点符号的错误导致整个数据解析失败。

HTML: <ul class=”users”> <li id=”2”><a>baby</a></li> </ul>

优点:结构通常在服务器端已经组织好,通常服务器端解析性能要明显优于客户端解析的性能,这样的数据通常可以直接输出。

缺点:这样的数据包含了比XML过多的标签信息,数据更加冗长。 通常当客户端的瓶颈是CPU而不是带宽的时候,会使用这种技术。

自定义格式:

1:itbbb.com,;2:baby;

优点:这样的纯文本格式把数据缩短到最短,只需要一个特定的分隔符就可以解析,通常用于大数据量传输时,可以解决数据体积的问题。

缺点:通常要自己构造方法去解析,兼容性较差,语言类库通常不提供任何解析方法。 相信看了以上关于数据格式的剖析,您一定已经选择出了最适合你项目中的数据格式。 想了解更多高性能Javascript的技术您可以尝试阅读以下书籍:

网站重构的8点建议

2014/03 06 10:03

这些建议来自IT-北北报[itbbb.com]

  • 1.用局部变量替换多次使用的对象

比如我们在一段代码内,多次使用document、window这样的对象,我们可以用局部变量替换他们。 var d = document,w = window; 原理:访问直接量和局部变量的速度快,相反,访问数组元素和对象成员相对较慢。

  1. 2.减少重绘与重排

重排:当页面布局和几何属性改变时候,需要重排,在重排后浏览器会重新绘制受到影响的部分到屏幕中,这个过程成为重绘。
以下操作会引发重排
·添加删除可见的DOM元素;
·元素位置、尺寸改变;
·文本变更;
·页面渲染器初始化;
·浏览器窗口尺寸改变。
而改变背景、文字颜色只会触发重绘。
我们可以通过如下三步避免重绘、重排:
(1)使元素脱离文档流→方法:隐藏元素
(2)对其应用所有改变→方法:应用修改
(3)把元素带回文档中→方法:重新显示 原理:因为隐藏的元素不会发生重绘、重排。

  1. 3.打造快速响应的用户界面

不要让用户等太久,那么多久算久,可用性专家Jakob Nielsen的《可用性工程》中提高,响应用户的时间最好不要超过100毫秒。

也就是每次按钮点击要给用户反馈,即使服务器端还没有返回结果,前端也要先给用户反馈,最常见的在表单提交过程中,当用户点击了提交,要弹出提示“玩命提交中…”,同时禁用按钮,待到服务端返回提交成功,再弹出提示“提交成功”,释放按钮。

这个优化给用户的感觉就是更快了,用户的动作得到了快速反馈,这无疑是个进步,所以我们要尽可能快的对用户操作做出反应。

  1. 6.避免使用CSS表达式

background-color: expression( (new Date()).getHours()%2 ? “#B8D4FF” : “#F08A00″ ); 表达式的问题就在于它的计算频率要比我们想象的多。不仅仅是在页面显示和缩放时,就是在页面滚动、乃至移动鼠标时都会要重新计算一次。给CSS表达式增加一个计数器可以跟踪表达式的计算频率。在页面中随便移动鼠标都可以轻松达到10000次以上的计算。 所以,在非不得已,请避免使用CSS表达式。

  1. 7.不要使用for-in循环遍历数组元素

原理:for-in每次迭代操作会同时搜索实例或原型属性,因此,它比while和for会产生更多的开销。

  1. 8.使用事件委托

当页面中有大量元素需要绑定事件处理器的时候,我们不要这样做: $(“#myul li”).click(function(){}); 我们可以改用(jquery1.7+用on代替了delegate和live) $(“#myul”).on(“click”,”li”,function(){}); 原理:事件逐层冒泡并被父级捕获,只需要给外层元素绑定一个处理器,就可以触发所有子集事件,而不需要给每个自己元素都绑定处理器,这是一种资源的浪费。
希望以上经验能对你有所帮助,如果你想了解更多关于高性能方面的知识,你可以尝试阅读大神zakas的《高性能Javascript》或者Steve souders的《高性能网站建设指南》



无觅相关文章插件,快速提升流量