⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 月光软件站 - 编程文档 - script - 我与javascript 随笔(二).htm

📁 我与Javascript 随笔一
💻 HTM
📖 第 1 页 / 共 3 页
字号:
        <TR>
          <TD align=middle width="100%" bgColor=#888888 height=1></TD></TR>
        <TR>
          <TD width="100%" height=2></TD></TR>
        <TR>
          <TD width="100%" height=38>
            <P align=center><B>作者</B>:未知 <B>来源</B>:月光软件站<!--未知--> 
            <B>加入时间</B>:2005-2-28 月光软件站</P></TD></TR>
        <TR>
          <TD vAlign=top width="100%">
            <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><FONT size=2><FONT 
            color=#ff0000><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">[注:为方便起见,</SPAN><SPAN 
            lang=EN-US> Javascript</SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">简称为</SPAN><SPAN 
            lang=EN-US>JS</SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">]</SPAN></FONT></FONT></P>
            <P class=MsoNormal 
            style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 26.25pt; mso-char-indent-count: 2.5"><FONT 
            size=2><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在</SPAN><SPAN 
            lang=EN-US>ASP</SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">网络应用程序的开发过程中,将我从纯客户端的环境下使用</SPAN><SPAN 
            lang=EN-US>JS</SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的行为摆脱出来,开始以另一种方式使用</SPAN><SPAN 
            lang=EN-US>JS</SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">:针对服务端应用的</SPAN><SPAN 
            lang=EN-US>JS</SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">脚本。</SPAN></FONT></P>
            <P class=MsoNormal 
            style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 26.25pt; mso-char-indent-count: 2.5"><SPAN 
            lang=EN-US><o:p><FONT size=2>&nbsp;</FONT></o:p></SPAN></P>
            <P class=MsoNormal 
            style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 26.25pt; mso-char-indent-count: 2.5"><FONT 
            size=2><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">我不想讨论怎样采用</SPAN><SPAN 
            lang=EN-US>Application</SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、</SPAN><SPAN 
            lang=EN-US>Session</SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、</SPAN><SPAN 
            lang=EN-US>Request</SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">、</SPAN><SPAN 
            lang=EN-US>Response</SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">以及</SPAN><SPAN 
            lang=EN-US>ADO</SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">等</SPAN><SPAN 
            lang=EN-US>COM</SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">服务对象结合</SPAN><SPAN 
            lang=EN-US>VBScript</SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">(或</SPAN><SPAN 
            lang=EN-US>JS</SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">)脚本语言进行服务端编程的详细规则,也不想让同为浏览器的脚本语言的</SPAN><SPAN 
            lang=EN-US>VBScript</SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</SPAN><SPAN 
            lang=EN-US>JS</SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">较量一番,只是简单讲一下自已在</SPAN><SPAN 
            lang=EN-US>ASP</SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">编程中采用</SPAN><SPAN 
            lang=EN-US>JS</SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">作为客户端脚本语言开发的一点体会。</SPAN> 
            </FONT></P>
            <P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN 
            lang=EN-US><o:p><FONT size=2>&nbsp;</FONT></o:p></SPAN></P>
            <P class=MsoNormal 
            style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 26.25pt; mso-char-indent-count: 2.5"><FONT 
            size=2><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">为减轻服务端处理数据的压力,对于客户端提交至服务端的大量表单(</SPAN><SPAN 
            lang=EN-US>Form</SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">)数据必须先经过处理或有效性的验证,在对这些数据的处理过程中,</SPAN><SPAN 
            lang=EN-US>JS</SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中的</SPAN><SPAN 
            lang=EN-US>String</SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</SPAN><SPAN 
            lang=EN-US>Array</SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">对象是非常好的选择,而</SPAN> 
            <SPAN lang=EN-US>Array</SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">对象存储各种类型数据(从基本的数值型到字符串再到对象类型)的能力常让我怀疑是否正在使用</SPAN><SPAN 
            lang=EN-US>MFC</SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中的</SPAN><SPAN 
            lang=EN-US>CArray</SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">模板类,记得有一次需要对服务端返回的多个字符串数据进行类似队列的循环处理,然后将处理的数据再返回至服务端,使用</SPAN><SPAN 
            lang=EN-US>Array</SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">对象的栈和队列功能,使我很轻松地解决这个问题。解析和验证诸如电子邮件地址、身份证号、电话号码、文本框输入字符等常用的字符串正确表达规则,以前通常的做法是无穷无尽的</SPAN><SPAN 
            lang=EN-US>if...else</SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">或</SPAN><SPAN 
            lang=EN-US>while</SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">判断,现在采用</SPAN><SPAN 
            lang=EN-US>RegExp</SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">对象后,验证字符串正确表达规则的代码不仅精炼而且非常有效(当然,</SPAN><SPAN 
            lang=EN-US>RegExp</SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的语法也是最关键的,处理不好也非常容易掉入陷阱)。</SPAN></FONT></P>
            <P class=MsoNormal 
            style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 26.25pt; mso-char-indent-count: 2.5"><FONT 
            size=2><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">有些看似不可接受的语法,居然在</SPAN><SPAN 
            lang=EN-US>JS</SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中使用频率非常之高,举个例子</SPAN><SPAN 
            lang=EN-US>,</SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">类似一个字符串</SPAN><SPAN 
            lang=EN-US>”abcde”</SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">,要查找</SPAN><SPAN 
            lang=EN-US>”c”</SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">是第几个字符,我可以这么写:</SPAN><SPAN 
            lang=EN-US>”abcde”.indexOf(“c”)</SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">,很独特的写法,还有</SPAN><SPAN 
            lang=EN-US>new String(“abcde”).indexOf(“c”)</SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">同样能够实现这个功能。虽然一开始我也不太接受这些语法,但是写客户端的</SPAN><SPAN 
            lang=EN-US>JS</SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">脚本越多,我越感到使用这些语法的必要性,它对程序的可读性和维护是非常有好处的。</SPAN><SPAN 
            lang=EN-US>JS</SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的灵魂就在于简炼(请记住,不是简单)。</SPAN></FONT></P>
            <P class=MsoNormal 
            style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 26.25pt; mso-char-indent-count: 2.5"><FONT 
            size=2><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">在面向服务端应用的开发中,使用</SPAN><SPAN 
            lang=EN-US>JS</SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">编写</SPAN><SPAN 
            lang=EN-US>DHTML</SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">文档是非常有必要的事情,我的一个实际案例:用户需要根据自已的要求生成不确定的、大量重复性的</SPAN><SPAN 
            lang=EN-US>HTML</SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">表格,每个表格里又包含许多</SPAN><SPAN 
            lang=EN-US>Form</SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">控件。想像一下,这件事如果由</SPAN><SPAN 
            lang=EN-US>ASP</SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">服务端脚本来完成,那将会是一种什么情况?首先,用户说我要生成</SPAN><SPAN 
            lang=EN-US>5</SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">个表格,服务端收到这个请求后,先定义一个表格模板,然后以循环方式在服务端动态生成</SPAN><SPAN 
            lang=EN-US>5</SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">个表格,最后返回用户所需的</SPAN><SPAN 
            lang=EN-US>HTML</SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">文档。当随着请求用户的增多和请求的表格数的增加,服务器的负载将不能得到保证。如果由</SPAN><SPAN 
            lang=EN-US>JS</SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">采用同样的方法为用户在客户端动态生成这些表格,那将是一件非常美妙的事,具体规则是</SPAN><SPAN 
            lang=EN-US>JS</SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">操作</SPAN> 
            <SPAN lang=EN-US>DOM</SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">(文档对象模型),生成动态的表格。</SPAN></FONT></P>
            <P class=MsoNormal 
            style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 26.25pt; mso-char-indent-count: 2.5"><SPAN 
            lang=EN-US><o:p><FONT size=2>&nbsp;</FONT></o:p></SPAN></P>
            <P class=MsoNormal 
            style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 26.25pt; mso-char-indent-count: 2.5"><FONT 
            size=2><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">面向对象的特性使我对</SPAN><SPAN 
            lang=EN-US>JS</SPAN><SPAN 
            style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">感到不解,在客户端的</SPAN><SPAN 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -