
2. 客户端Javascript代码:
- function CallMethod(AssemblyName,MethodName,Argus)
- {
- var args = "";
- for(var i=0;iargs += Argus[i] + ",";
- if(args.length>0) args = args.substr(0,args.length-1);
- var xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
- url = "AJAX/AJAX.czhenq?as=" + AssemblyName + "&me=" + MethodName +"&ar="+ args;
- xmlhttp.open("POST",url,false);
- xmlhttp.send();
- alert(xmlhttp.responseText);
- }
3.一个简单的AJAX框架已经实现。现在写段代码来测试.
使用自己的AJAX
1.新建一个网站,并应用刚才你编写的HttpHandler。并在网站的Web.config中注册你的HttpHandler,说明那些请求将使用你编写的Handler来处理。下面的内容说明:所有以"czq"结尾的请求,都将使用"Czhenq.HttpHandlerFactory"来处理。
type="Czhenq.HttpHandlerFactory, Czhenq.AJAX"/>
2.添加一个web页面,将刚才的脚本拷贝到页面中,并添加一个你要调用的方法。
- private string Add(int i, int j)
- {
- return TextBox1.Text;
- }
3.在页面中放置一个HiddenField控件,命名为AssemblyName。 并在Page_Load中添加如下代码:
- string assemblyName = Czhenq.AJAX.Class1.Encode(
-
- typeof(_Default).AssemblyQualifiedName);
- AssemblyName.Value = assemblyName;
4.页面中添加如下脚本:
- var assemblyName = document.getElementById("AssemblyName");
- var argus = new Array();
- argus.push("100");
- argus.push("200");
- CallMethod(assemblyName,"Add",argus);
总结 AJAX并不是一种新的技术,它只是一些已有技术的有机结合,我们可以将AJAX简单的理解为:AjAx是对JavaScript调用XmlHttp的封装,它改变的是代码书写方式。
附 Encode 与 Dencode实现:
- public static string Encode(string value)
- {
- byte[] bytes = ASCIIEncoding.ASCII.GetBytes(value);
- return Convert.ToBase64String(bytes);
- }
- public static string Dencode(string value)
- {
- byte[] bytes = Convert.FromBase64String(value);
- return ASCIIEncoding.ASCII.GetString(bytes);
- }