JavaScript 不只是脚本


Posted in Javascript onMay 30, 2007
在这个技术论坛,给大家写个我认为的JS。hoho

JavaScript似乎一直都当作是解析型的脚本语言,程序开发人员往往对此不懈一顾。认为一个脚本也没有太多的难度,那似乎为不懂程序的人专门设计的东西,不值得真正搞开发的去研究和应用。

从LiveScript 到JavaScript,在大量的时间JS都只是作为一种Script脚本在应用。更多的开发者只有在前端表单验证、以及诸如应用飘浮、移动、下拉联动菜单等网页特效或者必须通过界面才能得到的东西,比如客户端的时间、分辨率、以及一些在当前窗口操作的事件时才用得到它。于是JavaScript成了网页特效语言,专门用来给页面加上各种酷炫的效果了。JS似乎只能做些华而不实界面效果,甚至用户还可以随时屏蔽,一些浏览器工具条自动把 JavaScript给屏蔽了……

程序员对JavaScript的不重视,直接导致了JavaScript被忽视;而大量互联网特效应用,加速了JS被地当作一种脚本。而直到Jesse James Garrett 把JavaScript XMLhttp DOM等组合在一起正式提出Ajax后,JavaScript才忽然地炙手可热起来。加上Google、Yahoo、Microsoft等大型公司在Ajax方面的大量应用,JavaScript随着Ajax也越来越受到关注。

Ajax是一种新瓶装老酒的技术组合,或者说Ajax不是一种技术,而是一种概念。可正是这种能给互联网应用带来革新的概念让大家产生浓厚兴趣,原因不仅在于技术组合本身,也在于互联网应用技术模式的发展趋势。RIA的发展趋势需要新的技术和方法来配合,Ajax在现阶段正好满足了丰富互联网应用的部分发展要求,而重新利用上和定位JavaScript将是一种较好实现 RIA的选择。Ajax(或者说目前最佳丰富互联网技术应用)中真正的核心应当是JavaScript,目前的趋势是需要用JavaScript这种程序语言来重构网页、用JavaScript来格式化数据。而XMLhttp是一种传输数据的桥梁和协议,与原来GET和POST相类似,而XMLhttp很好地为JavaScript服务罢了。

实际上JavaScript就像 世界上最被误解的语言(http://www.crockford.com/javascript/javascript.html)里描述的JavaScript是世界上使用人数最多的编程语言之一,除了后缀是-script让人起疑之外,其他各种计算、流程控制、数组、函数一应俱全,与Java、C等等也很像。

当然也会程序员说,JavaScript不能操作文本(操作本地也不安全)、无法生成图像、也没有面向对象、没有类、没有继承、无法Debug,无法通过网络传输数据。所以,JavaScript不是一门真正意义上的程序语言。于是这样JavaScript就被忽略为在仅在页面设计当中使用的脚本了。但是,当看到JSON这样面向对象的JS应用、JS集合、3D图形、Prototype里类和继承,再加上XMLhttp异步传递网络数据,这时候还能说JavaScirpt仅仅是简单的脚本吗?

几年前就有先见者指明JavaScript是世界上最被误解的语言,幸好,今天我们已经认识到JS的重要性,不会一直再误会下去。

看到诸如
http://www.netvibes.com/
http://developer.yahoo.com/yui/
http://www.backbase.com/
http://www.meebo.com/
http://www.miniajax.com/
http://www.protopage.com/

http://www.google.com/
http://www.a9.com/
http://www.live.com/
http://www.snap.com/
http//www.ask.com/
http://dojotoolkit.org/
http://www.ask.com/

这些应用时,JavaScript就不会只是被当成脚本语言了。JavaScript具有面向对象的概念,也可以继承类和抛出异常。正因为这些,也就是现下为何Ajax框架层出不穷,并且如此火爆的原因了。程序开发者已经意识到JavaScript语言的重要性,以及重新认识它之后给网页开发带来的变革,对于无论是前端还是后台开发人员,JavaScript都不只是从前所认为的那样-----只是简单的脚本。

在一个项目当中,尤其网页开发项目,JavaScript几乎是必不可少的语言,它不要编译器,也不需要专门的解析器。只要客户端机器上有浏览器,只要把开源的JavaScript 引擎加入浏览器中(几乎所有的浏览器都支持,所有的电脑都有浏览器JavaScript 不只是脚本 ),不管是电脑还是手机,JavaScript都将很好地被支持。

而使用JavaScript,至少有下面这几点好处:
1,增加交互动态应用,丰富界面应用,提高用户体验
2,节省后台开发成本,减少后台开发量, 显示HTML/XHTML和格式化数据交给JS处理
3,节省网络带宽,让浏览速度更快,减轻服务器压力,XMLhttp 减少刷新数据
4,体现RIA,B/S模式的利器,通过JS可以达到C/S模式的效果
5,WEB版软件最好的界面实现者,Flash,Applet也还不错,不过目前JavaScrip是最好的
6,……

浏览器的兼容性或者用户屏蔽JS虽然是个头疼的问题,但绝大多数浏览器都在遵循ECMAScript1.5标准,大多数用户是不会禁用JS的,因为关闭JS使用互联网几乎是件困难的事。

虽然还有安全、开发和维护成本等等的不利因素在里面,但如果把JavaScript很好地与后台结合起来,JavaScript将是网页开发非常重要的一门语言,甚至不亚于Java。现在利用Java、php做后台的网站越来越多,而再有效结合JavaScript,利用JavaScript来t处理和显示页面,这样,丰富互联网应用、提高用户体验将成为可能。

JavaScript被程序员忽视这么久后,终于踏着RIA的步伐迎来了春天,不管怎么说,软件程序从桌面走向网络、走向浏览器将是必然的趋势。不是说要取代桌面应用,而是丰富互联网应用有太多的路要走。

而其中,桌面还是互联网应用其后台是很类似的,都可以用Java,C,C#等等。而在前台,在互联网软件应用上,JavaScript将会很好地担任界面开发程序语言的角色。

毕竟,JavaScript不再仅仅是脚本,而是一门可以面向对象的程序语言。当然了,要想真正利用好JavaSript这门语言,精通一门后台语言必不可少,而也只有这样JavaScript才不会是仅仅是脚本。

这里我说了大量JavaScript有利的一面,当然JS依然存在着这样那样的问题,但我想RIA发展是个趋势,B/S模式也是一个趋势,JavaScript也还在一直向前发展(新的版本也在研究)。我相信随着WEB2.0这种用户与网站以及用户之间的彼此交互应用越来越多,也随着网络带宽越来越快,RIA将会有一个很好的发展,而JavaScript在RIA中也将发挥越来越重要的作用。

Javascript 相关文章推荐
Javascript Cookie读写删除操作的函数
Mar 02 Javascript
在Iframe中获取父窗口中表单的值(示例代码)
Nov 22 Javascript
jquery阻止后续事件只执行第一个事件
Jul 24 Javascript
Angular用来控制元素的展示与否的原生指令介绍
Jan 07 Javascript
解决jquery中动态新增的元素节点无法触发事件问题的两种方法
Oct 30 Javascript
使用node+vue.js实现SPA应用
Jan 28 Javascript
javascript中eval解析JSON字符串
Feb 27 Javascript
微信小程序 定位到当前城市实现实例代码
Feb 23 Javascript
详解vue与后端数据交互(ajax):vue-resource
Mar 16 Javascript
JQuery样式操作、click事件以及索引值-选项卡应用示例
May 14 jQuery
微信小程序之左右布局的实现代码
Dec 13 Javascript
如何实现echarts markline标签名显示自己想要的
Jul 20 Javascript
JCalendar 日历控件 v1.0 beta[兼容IE&Firefox] 有文档和例子
May 30 #Javascript
[原创]站长必须要知道的javascript广告代码
May 30 #Javascript
JSON 学习之完全手册 图文
May 29 #Javascript
Highslide.js是一款基于js实现的网页中图片展示插件
Mar 30 #Javascript
JScript的条件编译
May 29 #Javascript
javascript学习网址备忘
May 29 #Javascript
?牟┛途W扣了一??效果出?? target=
May 27 #Javascript
You might like
动画 《Pokemon Sword·Shield》系列WEB动画《薄明之翼》第2话声优阵容公开!
2020/03/06 日漫
Syphon 虹吸式咖啡壶冲煮–拨动法
2021/03/03 冲泡冲煮
虚拟主机中对PHP的特殊设置
2006/10/09 PHP
PHP解耦的三重境界(浅谈服务容器)
2017/03/13 PHP
Yii 2.0如何使用页面缓存方法示例
2017/05/23 PHP
Laravel 中使用 Vue.js 实现基于 Ajax 的表单提交错误验证操作
2017/06/30 PHP
javascript 简单高效判断数据类型 系列函数 By shawl.qiu
2007/03/06 Javascript
关于JavaScript的一些看法
2009/05/27 Javascript
js substr、substring和slice使用说明小记
2011/09/15 Javascript
ASP.NET jQuery 实例1(在TextBox里面创建一个默认提示)
2012/01/13 Javascript
JavaScript中__proto__与prototype的关系深入理解
2012/12/04 Javascript
JavaScript中this的使用详解
2013/11/08 Javascript
JavaScript实现网页对象拖放功能的方法
2015/04/15 Javascript
基于jQuery实现简单的折叠菜单效果
2015/11/23 Javascript
AngularJS $injector 依赖注入详解
2016/09/14 Javascript
微信小程序 配置文件详细介绍
2016/12/14 Javascript
Bootstrap轮播图学习使用
2017/02/10 Javascript
简单的JS控制button颜色随点击更改的实现方法
2017/04/17 Javascript
JavaScript表单验证实现代码
2017/05/22 Javascript
微信小程序 密码输入(源码下载)
2017/06/27 Javascript
手把手教你使用vue-cli脚手架(图文解析)
2017/11/08 Javascript
如何让你的JS代码更好看易读
2017/12/01 Javascript
vue2.0组件之间传值、通信的多种方式(干货)
2018/02/10 Javascript
基于jquery实现左右上下移动效果
2018/05/02 jQuery
解决vue中修改了数据但视图无法更新的情况
2018/08/27 Javascript
浅谈Vuex的this.$store.commit和在Vue项目中引用公共方法
2020/07/24 Javascript
[41:52]DOTA2-DPC中国联赛 正赛 CDEC vs Dynasty BO3 第二场 2月22日
2021/03/11 DOTA
Python实现字典的遍历与排序功能示例
2017/12/23 Python
moosejaw旗下的户外商品促销网站:Mountain Steals
2017/02/27 全球购物
职业教育毕业生求职信
2013/11/09 职场文书
公司财务自我评价分享
2013/12/17 职场文书
酒店节能减排方案
2014/05/26 职场文书
安全生产月宣传标语
2014/10/06 职场文书
解决MySQL存储时间出现不一致的问题
2021/04/28 MySQL
python中数组和列表的简单实例
2022/03/25 Python
Apache SkyWalking 监控 MySQL Server 实战解析
2022/09/23 Servers