刚刚开始进入公司的时候,我一行的javascript代码都不会写,与至于想window.open这种方法都是需要问有些经验的同事。后来经过了一段时间的开发,终于在javascript代码开始醒悟,开始摸着了门道。为了让更多的人减少这段痛苦的时间,我姑且在这里废话几句。下面的例子都是以aspnet中的javascript代码使用方法为例。
首先,我们总结一下javascript代码在web开发中的作用。在一个web页面中,一般的javascript有以下的作用:
1. 写客户端验证,100%会用到;
2.客户端页面的DOM对象编程,99%用到;
3.一些window,document对象的编程,99%用到;
4.Ajax实现;
注:其实window,document也是DOM对象,只是这部分看上去太大,不像DOM,所以拿出来单独为一例。
说完了javascript在web页面中的作用,下面说说对javascript的总体性了解和把握,有利于写好javascript代码。
javascript首先是一门语言,和c,java,c#一样的级别,但是它属于解释性脚本语言,一般在浏览器环境下执行,也就是在客户端执行;而c#写的cs脚本所在看上去也在浏览器中执行,但是其实它是部署在服务器端的,而且执行这些c#写的代码是在服务器端实现的。
javascript是弱类型语言,同时又是一门类面向对象的语言。在web开发中,javascript操作html元素其实和aspnet模型类似:所有的页面都是由DOM控件组成(aspnet模型中,所有的页面都是由aspnet控件组成)。什么是DOM控件?DOM控件你可以理解为html的一个对象元素,比如table是一个对象,那么他就是一个DOM,那么TR是不是DOM呢?也是的,因为TR也是一个对象,其实只要满足<></>这样的关系,就是一个DOM对象。按照aspnet的规矩,每个控件都有属于自己的属性和方法,那么DOM控件也有自己的属性和方法。其实我们的在web开发的时候,操作DOM控件就是和在服务器端操作aspnet控件一样,找对控件的相应属性和方法,并对其进行编程即可。简单吧?这样是不是超级简单。
还有一件事情,怎么找DOM控件的属性和方法?解决这个事情,首先你要明白一件事情,aspnet服务器端控件和DOM控件之间的关系.他们之间的关系其实是“对应”的关系。很含糊吧?说白了,一个服务器端控件最后会变成一个客户端的DOM控件在浏览器中显示。为什么?怎么变的?你暂时还不需要知道为什么,你就只要知道,aspnet控件在浏览器中是无法被识别的,浏览器能被识别的只有html代码,所以aspnet控件最终会被“编译”成html代码,那么有序的html代码就组成了客户端的DOM控件。好,事情到这里就简单了,终于抓到本质了:“DOM控件”,后面很多的文章会用这个名词说话。要记住他。
关于javascript语言的历史渊源、基本语法、DOM控件的定义、本质等,希望读者能找本书看看,推荐是那本javascript的圣经级书本:“犀牛书”。如果没书,没关系,找google去,google是好东西啊,g一下相关的定义就行了。
下面的一节,我会写一下aspnet控件和DOM控件的“对应”关系;aspnet控件怎么变成DOM控件的;还有aspnet控件和DOM控件的不一样的地方;