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 this用法小结
Dec 19 Javascript
javascript小组件 原生table排序表格脚本(兼容ie firefox opera chrome)
Jul 25 Javascript
jquery实现表格奇数偶数行不同样式(有图为证及实现代码)
Jan 23 Javascript
使用CSS和jQuery模拟select并附提交后取得数据的代码
Oct 18 Javascript
javascript简单实现滑动菜单效果的方法
Jul 27 Javascript
ES6入门教程之let和const命令详解
May 17 Javascript
Vue实现选择城市功能
May 27 Javascript
使用jQuery动态设置单选框的选中效果
Dec 06 jQuery
使用vue-cli脚手架工具搭建vue-webpack项目
Jan 14 Javascript
解决vue cli4升级sass-loader(v8)后报错问题
Jul 30 Javascript
Vue proxyTable配置多个接口地址,解决跨域的问题
Sep 11 Javascript
游戏开发中如何使用CocosCreator进行音效处理
Apr 14 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
apache2.2.4+mysql5.0.77+php5.2.8安装精简
2009/04/29 PHP
php 修改zen-cart下单和付款流程以防止漏单
2010/03/08 PHP
php验证session无效的解决方法
2014/11/04 PHP
浅谈PHP中JSON数据操作
2015/07/01 PHP
PHP实现的迷你漂流瓶
2015/07/29 PHP
使用php实现从身份证中提取生日
2016/05/09 PHP
php封装的数据库函数与用法示例【参考thinkPHP】
2016/11/08 PHP
Laravel框架用户登陆身份验证实现方法详解
2017/09/14 PHP
JQuery的Alert消息框插件使用介绍
2010/10/09 Javascript
JS 获取滚动条高度示例代码
2013/10/24 Javascript
浅析JavaScript中的typeof运算符
2013/11/30 Javascript
js中判断对象是否为空的三种实现方法
2013/12/23 Javascript
省市区三级联动下拉框菜单javascript版
2015/08/11 Javascript
JS实现黑客帝国文字下落效果
2015/09/01 Javascript
jQuery 1.9.1源码分析系列(十三)之位置大小操作
2015/12/02 Javascript
Bootstrap编写一个兼容主流浏览器的受众门户式风格页面
2016/07/01 Javascript
JS正则表达式修饰符global(/g)用法分析
2016/12/27 Javascript
js图片轮播手动切换特效
2017/01/12 Javascript
Web纯前端“旭日图”实现元素周期表
2017/03/10 Javascript
javascript性能优化之分时函数的介绍
2018/03/28 Javascript
Vue router传递参数并解决刷新页面参数丢失问题
2020/12/02 Vue.js
[02:52]2017DOTA2国际邀请赛中国区预选赛晋级之路
2017/07/03 DOTA
Python安装Flask环境及简单应用示例
2019/05/03 Python
Python进程间通信 multiProcessing Queue队列实现详解
2019/09/23 Python
Python笔记之facade模式
2019/11/20 Python
浅谈PyTorch的可重复性问题(如何使实验结果可复现)
2020/02/20 Python
Python模拟登入的N种方式(建议收藏)
2020/05/31 Python
Python实现手势识别
2020/10/21 Python
CSS3中Animation属性的使用详解
2015/08/06 HTML / CSS
医学专业大学生求职的自我评价
2013/11/27 职场文书
理发店策划方案
2014/06/05 职场文书
民族学专业职业生涯规划范文:积跬步以至千里
2014/09/11 职场文书
县长“四风”对照检查材料思想汇报
2014/10/05 职场文书
2015年第十五个全民国防教育日宣传活动方案
2015/05/06 职场文书
《雀魂PONG☆》4月1日播出 PV角色设定情报
2022/03/20 日漫
微信小程序纯CSS实现无限弹幕滚动效果
2022/09/23 HTML / CSS