各种AJAX方法的使用比较(4)

本文收集了在ASP.NET平台上,一些具体代表性的AJAX开发方法,我将用实际的示例代码来演示如何使用它们,让您感受AJAX的进化历程,同时也希望将一些优秀的AJAX开发方法介绍给您。


第四代技术:直接提交表单

我们来看一下示例用的表单:

  
  
  1. <form id="form1" action="/AjaxDemo/AddCustomer.cspx" method="post">  
  2.     <p><b>新增客户资料</b></p>  
  3.     <span>Name: </span><input type="text" name="Name" value="abc" /><br />  
  4.     <span>Age: </span><input type="text" name="Age" value="20" /><br />  
  5.     <span>Address: </span><input type="text" name="Address" value="武汉" /><br />  
  6.     <span>Tel:</span> <input type="text" name="Tel" value="12345678" /><br />  
  7.     <span>Email: </span><input type="text" name="Email" value="test@163.com" /><br />  
  8.     <br />  
  9.     <input type="submit" name="btnAddCustomer" value="保存客户资料" />  
  10. </form>  

前面用了三种方法在提交这个表单,下面我们再来看一下更简单的提交方式:

  
  
  1. <script type="text/javascript">  
  2. $(function(){  
  3.       
  4.     // 只需要下面这个调用就可以将表单改成异步提交方式!  
  5.     $("#form1").ajaxForm({  
  6.         success:function(result){  
  7.             $("#output").val(result);  
  8.         }  
  9.     });  
  10. });  
  11.  
  12. </script>  

为了更清楚展示这种方法,我甚至把script标签也贴出来了。

如果您用过jQuery就应该能发现,真正的代码就只有ajaxForm的那个调用。

说明:ajaxForm是jQuery.form插件提供的功能。

服务端的代码继续使用前面示例的代码,所以就不贴出了。

再对比前面几种AJAX的实现方法,您说哪种方法最简单?

您对第四代AJAX技术有兴趣吗?

我还为它设计了三种不同场景下的示例,让您感受它的强大与简单,请继续阅读。


多submit按钮的提交(用jQuery.form实现)

您认为前面的示例太简单了,是吗?

可能有人会说,如果有多个submit按钮,这种方法就不合适了,我要响应每个按钮,为它们指定不同的URL !

真是这样吗? 看下面的示例吧。

相关的前端代码如下:

  
  
  1. <form id="form1" action="/AjaxTestAutoAction/submit.cspx" method="post">  
  2.     <p><span>Input:</span>  
  3.         <input type="text" name="input" style="width: 300px" value="Fish Li" /></p>  
  4.     <p><span>Output:</span>  
  5.         <input type="text" id="output" style="width: 300px" readonly="readonly" /></p>  
  6.     <input type="submit" name="Base64" value="转换成Base64编码" />&nbsp;&nbsp;  
  7.     <input type="submit" name="Md5" value="计算md5" />&nbsp;&nbsp;  
  8.     <input type="submit" name="Sha1" value="计算sha1" />  
  9. </form>  
  10.  
  11. <script type="text/javascript">  
  12. $(function(){      
  13.     $("#form1").ajaxForm(function(result) {  
  14.         $("#output").val(result);  
  15.     });  
  16. });  
  17. </script>  

服务端代码:

  
  
  1. public class AjaxTestAutoAction  
  2. {  
  3.     [Action]  
  4.     public string Base64(string input)  
  5.     {  
  6.         return Convert.ToBase64String(Encoding.Default.GetBytes(input));  
  7.     }  
  8.  
  9.     [Action]  
  10.     public string Md5(string input)  
  11.     {  
  12.         byte[] bb = Encoding.Default.GetBytes(input);  
  13.         byte[] md5 = (new MD5CryptoServiceProvider()).ComputeHash(bb);  
  14.         return BitConverter.ToString(md5).Replace("-"string.Empty);  
  15.     }  
  16.  
  17.     [Action]  
  18.     public string Sha1(string input)  
  19.     {  
  20.         byte[] bb = Encoding.Default.GetBytes(input);  
  21.         byte[] sha1 = (new SHA1CryptoServiceProvider()).ComputeHash(bb);  
  22.         return BitConverter.ToString(sha1).Replace("-"string.Empty);  
  23.     }  
  24. }  

代码仍然很清晰:

1. 服务端定义三个方法,对应三个submit按钮。

2. 前端还是只调用一个ajaxForm解决所有问题。

这种方法就是由前端的 jQuery, jQuery.form 以及服务端的MyMVC框架共同实现的。想像一下利用其它三种方法需要多少代码吧。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值