我与Javascript 随笔(二)

原创 2004年02月29日 13:24:00

[注:为方便起见, Javascript简称为JS

ASP网络应用程序的开发过程中,将我从纯客户端的环境下使用JS的行为摆脱出来,开始以另一种方式使用JS:针对服务端应用的JS脚本。

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

我不想讨论怎样采用ApplicationSessionRequestResponse以及ADOCOM服务对象结合VBScript(或JS)脚本语言进行服务端编程的详细规则,也不想让同为浏览器的脚本语言的VBScriptJS较量一番,只是简单讲一下自已在ASP编程中采用JS作为客户端脚本语言开发的一点体会。

 

为减轻服务端处理数据的压力,对于客户端提交至服务端的大量表单(Form)数据必须先经过处理或有效性的验证,在对这些数据的处理过程中,JS中的StringArray对象是非常好的选择,而 Array对象存储各种类型数据(从基本的数值型到字符串再到对象类型)的能力常让我怀疑是否正在使用MFC中的CArray模板类,记得有一次需要对服务端返回的多个字符串数据进行类似队列的循环处理,然后将处理的数据再返回至服务端,使用Array对象的栈和队列功能,使我很轻松地解决这个问题。解析和验证诸如电子邮件地址、身份证号、电话号码、文本框输入字符等常用的字符串正确表达规则,以前通常的做法是无穷无尽的if...elsewhile判断,现在采用RegExp对象后,验证字符串正确表达规则的代码不仅精炼而且非常有效(当然,RegExp的语法也是最关键的,处理不好也非常容易掉入陷阱)。

有些看似不可接受的语法,居然在JS中使用频率非常之高,举个例子,类似一个字符串”abcde”,要查找”c”是第几个字符,我可以这么写:”abcde”.indexOf(“c”),很独特的写法,还有new String(“abcde”).indexOf(“c”)同样能够实现这个功能。虽然一开始我也不太接受这些语法,但是写客户端的JS脚本越多,我越感到使用这些语法的必要性,它对程序的可读性和维护是非常有好处的。JS的灵魂就在于简炼(请记住,不是简单)。

在面向服务端应用的开发中,使用JS编写DHTML文档是非常有必要的事情,我的一个实际案例:用户需要根据自已的要求生成不确定的、大量重复性的HTML表格,每个表格里又包含许多Form控件。想像一下,这件事如果由ASP服务端脚本来完成,那将会是一种什么情况?首先,用户说我要生成5个表格,服务端收到这个请求后,先定义一个表格模板,然后以循环方式在服务端动态生成5个表格,最后返回用户所需的HTML文档。当随着请求用户的增多和请求的表格数的增加,服务器的负载将不能得到保证。如果由JS采用同样的方法为用户在客户端动态生成这些表格,那将是一件非常美妙的事,具体规则是JS操作 DOM(文档对象模型),生成动态的表格。

 

面向对象的特性使我对JS感到不解,在客户端的DHTML开发中真的需要面向对象吗?JS不是一种纯面向对象的语言,虽然可以实现或伪实现某些诸如继承、多态的面向对象语言的特性,但这些东西经常在DHTML使用吗?正如我曾经看过的一本书《JavaScript完全参考》中所述:大多数JS程序员使用的还是一团浆糊式的编程。我的原则是:尽可能采用过程式的JS编程,也不用面向对象的方法!偏激了点,的确在许多实际应用开发中,牺牲过程式的编程而勉强采用面向对象的方式有时是恰如其反。

 

今天,ASP.NET正在把Web开发中面向客户端处理的细节隐藏起来,但我始终不会忘记一个灵活、高效且非常健壮的客户端如果失去了JS,那么也就失去了Web开发真正的魅力。

 

这篇随笔还没有真正的结束,让它先暂停一下吧,同时期待自已对JS有更多的理解:)       

                                        yjgx 于 2004-2-27 22:00

抽象编程思想笔记

刚开始学习编程的时候浑浑噩噩的,很多概念一直不太理解,现在在书中看到,感觉就像是从另一个角度又理解了一下,觉得有些思想比较好玩 1.编译过程   2.库与接口   在计算机科学中,接口是一个...
  • u013673499
  • u013673499
  • 2016年01月26日 23:43
  • 250

博客园的 “随笔、文章、日记”有什么区别?

博客园的 “随笔、文章、日记”有什么区别?生成的url有区别“p/articles/diary”,并且日记不公开...
  • yunweifun
  • yunweifun
  • 2017年12月17日 09:25
  • 251

JavaScript 学习随笔(二)

背 景记得5年前刚毕业的时候,什么jQuery、extJS啊,面试中经常问道,感觉好高端,,,一直想找个机会学学,现在有了?给自己安排了一个活-15天内完成‘渠道分析’这个模块的开发:用 h5 开发前...
  • PENGYUCHENG32109
  • PENGYUCHENG32109
  • 2017年05月07日 19:04
  • 203

2017年底总结随笔

颠颠倒倒已经进入前端这个圈子已经一年多了,一直没有能够静下心来写点东西。今天没有什么代码任务,让我摸会鱼,哈哈哈哈哈哈(如果有人看到我的这篇随笔,请千万不要吐槽我。因为真的是想到什么就写什么,比较没什...
  • xu686juan
  • xu686juan
  • 2017年12月08日 15:59
  • 252

2016新年随笔

前言 题外话:【我爱王梦】 生活:        高考时的失利,让我在很大的一段时间内都走不出来,那段时间真的不知道自己在想什么?又到底在做着什么?说真的,那段时间我感觉到了真正的孤独,没...
  • wangmeng951011
  • wangmeng951011
  • 2016年02月11日 12:02
  • 465

面向对象的JavaScript(2): 对象就是二元组

什么是对象?这里有很多关于对象的定义:对象(object)是一件事、一个实体、一个名词,是可以获得的东西,是可以想象的能够有自己标识的任何东西。对象是类的实例化。对象是一些相关的变量和方法的软件集合。...
  • FinderCheng
  • FinderCheng
  • 2009年04月21日 20:42
  • 1312

博客园首页新随笔联系管理订阅 随笔- 7 文章- 0 评论- 4 ElasticSearch 5.0.1 java API操作

博客园首页新随笔联系管理订阅 随笔- 7  文章- 0  评论- 4  ElasticSearch 5.0.1 java API操作   ...
  • gaoqiao1988
  • gaoqiao1988
  • 2016年12月25日 09:15
  • 615

随笔 1. 再见2016,你好2017!

随笔 : 再见2016,你好2017!
  • qq_20259459
  • qq_20259459
  • 2017年01月11日 18:21
  • 931

寒假计划随笔

未来畅想      大三过半,已经到了为未来做打算的时候了。我打算不考研了,我认为本专业的实践能力比较重要,早些着手实践,工作一段时间以后有精力的话就准备考研,提升自己的知识储备。大学三年我的实践能...
  • yangyayan21
  • yangyayan21
  • 2018年01月20日 10:39
  • 35

我的openwrt学习笔记(二):OpenWrt 开发环境搭建

首先我们首选的OpenWrt 编译环境是 Ubuntu,并且应尽量选择稳定的LTS版本,而不是更高版本的。这里我们推荐使用 Ubuntu 12.04 LTS或者Ubuntu 14.04 LTS作为编译...
  • xushx_bigbear
  • xushx_bigbear
  • 2015年08月18日 09:48
  • 19532
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:我与Javascript 随笔(二)
举报原因:
原因补充:

(最多只允许输入30个字)