双向Script 标签通信

使用JavaScript 动态生成标记Script可以产生http请求,进而通过查询字符串来向服务器提交数据,实现用较小的局部刷新来与服务器通信的目的.(源码下载地址:http://codechina.net/source/2001372)html 代码:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="script.aspx.cs" Inherits="script" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>无标题页</title>
    <script type="text/javascript">

   //发出请求函数
    function sendRequest()
    {
       document.getElementById("ResultDiv").innerText="";
       var newScript=document.createElement("script");
       newScript.src="scripthandler.ashx?msg="+escape(form1.Text1.value);
       document.body.appendChild(newScript);
      
    }

   //调用成功后的回调函数
    function requestComplete(arg)
    {
       document.all.ResultDiv.innerHTML=arg;
    }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
     <input id="Button1" type="button" value="button"  οnclick="sendRequest();"/>
        <input id="Text1" type="text" />
        <div id="ResultDiv"></div>
    </div>
    </form>
</body>
</html>
服务器端处理请求代码(scripthandler.ashx):

 

<%@ WebHandler Language="C#" Class="scriptHandler" %>

using System;
using System.Web;

public class scriptHandler : IHttpHandler
{
   
    public void ProcessRequest (HttpContext context)
    {
        context.Response.ContentType = "text/plain";
        //接收参数并处理后(这里省略了对参数的处理),输出脚本调用requestComplete方法
        context.Response.Write("requestComplete   ('<b>Hello,"+context.Request.QueryString[0]+"!</b>');");
    }
 
    public bool IsReusable

{
        get

       {
            return false;
        }
    }

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值