JavaScript DOM学习(1)

来源:互联网 发布:自动整点报时软件 编辑:程序博客网 时间:2024/04/30 08:38

1. 回调函数:

    jQuery中遵循的设计模式,JavaScript中,回调函数具体的定义为:函数A作为参数(函数引用)传递到另一个函数B中,并且这个函数B执行函数A。我们就  说函数A叫做回调函数。如果没有名称(函数表达式),就叫做匿名回调函数。也就是我们之前常见的递归调用的变体,网上看到一个很形象地例子

            你有事去隔壁寝室找同学,发现人不在,你怎么办呢?
           
Method 1,每隔几分钟再去趟隔壁寝室,看人在不
           
Method 2,拜托与他同寝室的人,看到他回来时叫一下

            前者是轮询,后者是回调

            那你说,我直接在隔壁寝室等到同学回来可以吗

            可以啊,只不过这样原本你可以省下时间做其他事,现在必须浪费在等待上了。把原来的非阻塞的异步调用变成了阻塞的同步调用

            JavaScript的回调是在异步调用场景下使用的,使用回调性能好于轮询

2.闭包:

闭包(closure)是JavaScript语言“链式作用域”(chain scope)结构的一个难点,是针对变量作用域提出的一个概念,因为函数内部定义的变量是局部变量,在函数外部无法访问,但是有时候又需要读取函数内部的局部变量,闭包就是解决这个问题的。

 

3. 原生JS和基于库:

            逗的是阿里的暑期实习在线笔试就有一个要求用原生js编程的题,我当时愣是不知道,言归正传。就拿选择元素来说,原生的JS是基于DOM的,如通过document.getElementById, document.getElementByTagName, document.getElementByClassName。而基于jQuery库的实现方式是$(‘#elementid’), $(‘tag’),$(‘.element-class’)。

 

4. 内容分发网络(CND):

除了要尽可能减少网页文档的大小,让浏览器缓存文件外,如可以利用谷歌的Closure Compiler: http://closure-compiler.appspot.com/home;来压缩JS代码。压缩之后的包如,jquery.min.js, CDN就是解决分布共享库的问题,它由服务器构成的网络,这个网络的用途就是分散存储一些公共内容,从而能够根据地理位置尽快响应资源访问,加载页面。

 

5. HTML5:

可以用来在文档中绘制矢量及位图的<canvas>标签;

可以免插件而直接在网页中嵌入音频和视频的<audio>和<video>标签;

可以提供更广泛选择的新的表单控件类型以及新的属性;

Moderizr是专门为HTML5和CSS3开发的检测与浏览器兼容性的JS库。

 

0 0
原创粉丝点击