现在的位置: 首页 > 综合 > 正文

小议丰富多彩的客户端脚本

2012年08月08日 ⁄ 综合 ⁄ 共 1807字 ⁄ 字号 评论关闭

      一直以来对于分清客户端脚本和服务器端脚本显得不是很清楚。更不必说是理解深刻了。现在就自己的一点点想法试着描述一下,以便大家来指正。

      掌握网页编程主要是对于服务器端脚本和客户端脚本的理解。大多数人极为重视服务器端的脚本。却忽视了丰富多彩的客户端脚本。因为客户端脚本能完成服务器端脚本所不能完成的功能。我想主要表现在以下几个方面:

     (1)在客户端显示消息对话框

     (2)打开一个新的浏览窗口(window对象)

     (3)在窗口之间进行通信

     (4)播放简单的动画

     (5)写定制的客户端验证脚本

      我想可能还有其他功能。个人以为客户端端脚本的功能必将不断被加强和扩展,因为这符合现在不断强调系统中个体智能的趋势。进入ASP.NET时代,我们对于服务器端脚本的开发显得更加得心应手,但是对于客户端脚本的编写似乎与ASP还没有很大的改变。那么到底如何来编写客户端脚本呢?换而言之,就是如何发送脚本到浏览器?下面我将列举一些方法:

      一、直接在ASPX文件中写客户端脚本: 

        

<script type="text/javascript">

   function showalert(){

     alert("Hello");

    }

</script>

      这也是ASP中常用的Javacript的写法。我们可以看到这是一个弹出消息窗口的函数。一般而言他放在文件的<head>处,不易放在<form>之间。

     二、用服务器脚本写客户端脚本

      注意,这种方法对于效率显然比较低。但是在ASP中,对于服务器端与客户端脚本的交互具有很大的意义。在ASP.NET中类似。

<script type="VB" runat="server">

   sub showalert()

     with Response

        .Write("<scr"&"ipt language=""Javascript"">"&System,Enviornment.NewLine)

        .Write("Alert('Hello!');"&System,Enviornment.NewLine)

        .Write("</scr"&"ipt>")

     end with

    end sub

</script>

     我们看到这里虽然没有把服务器端的信息(如SessionID)传替给客户端,但是依然能明显地看出如何用服务器端脚本写客户端脚本。

     三、用后台代码写客户端脚本

     这是ASP.NET提供的机制。主要是用对象的Attribute这个属性来完成。比如说对于Button1的click事件就可以这么写: 

   

button1.Attributes.add("onclick","alert('Hello');")

     四、使用RegisterClientBlock()写客户端脚本

     这是进入ASP.NET之后新加入的功能。下面来示范如何将服务器端的变量传递给客户端脚本。

<script type="VB" runat="server">

   Sub Page_Load( sender as Object,e as EventArgs)  

      Dim s as String="<script language=JavaScript>"

     s+="var session='"&Session.SessionID&"';"

     s+="</scipt>"

     RegisterClientScriptBlock("script",s)

    End sub

</script>

    

      这里的原理是这样的:SessionID是服务器端脚本,先写入客户端脚本字符串中。然后用RegisterClientScriptBlock将脚本写在输出流中隐藏的_VIEWSTATE控件之后。最后在客户端读入脚本,得到SessionID变量值。从而完成客户端脚本和服务器端脚本的交互。

     总之,客户端脚本是很丰富多彩的,必须认真深入的学习才行。

     相关参考:

      http://www.loveyuki.com/blogview.asp?logID=173 

      http://www.moon-soft.com/doc/44851.htm

抱歉!评论已关闭.