zoukankan      html  css  js  c++  java
  • 在项目中让Ajax面向对象 (二)

        上次更改后在页面生成以下代码

    1 <script type="text/javascript">
    2  var WebForm1 =function(){};
    3 WebForm1.TestMethod =function(x,y,clientCallBack){
    4 JqAjax.Post("test.WebForm1","TestMethod",[x,y],clientCallBack,"/WebForm1.aspx?Ajax=true");}
    5  </script>
    6  

        以上的代码很容易就构成了一个JS类的包装,上次谈过把所有的方法都动态生成了以上的方法,然后输出到页面。在需要的时候就可以如下调用 

    <input id="button3" type="button" value="ajaxbutton" onclick="WebForm1.TestMethod(3,4,callback)"/>

       JqAjax.Post是自定义的一个的小插件

      

    代码
    1 var JqAjax =new Object();
    2
    3 (function($){
    4 $.extend(JqAjax, {
    5 Post:function(serverType, serverMethod, args, clientCallBack, url)
    6 {
    7 var dataBuilder =new StringBuilder();
    8 //js StringBuilder可查网上资料
    9   dataBuilder.append( "Type=" );
    10 dataBuilder.append( Type );
    11 dataBuilder.append( "&AMethod=" );
    12 dataBuilder.append( Method );
    13 if ( args ) {
    14 for ( var i =0, count = args.length; i < count; i++ ) {
    15 dataBuilder.append( "&Arg" );
    16 dataBuilder.append( i );
    17 dataBuilder.append( "=" );
    18 dataBuilder.append( ( args[i] ) );}
    19 }
    20 $.post(url,dataBuilder.toString(),clientCallBack,"json");
    21 }
    22 })
    23
    24 })(jQuery);

       在post后,只要在Handle中截取到是ajax的传递如上面可过来判定Ajax=true或自定义扩展名,反射(反射的使用网上很多)到具体的方法 methodInfo.Invoke就动态可运行一个方法,返回时注意将 HttpResponse.ContentType = "application/x-javascript";就ok了。

  • 相关阅读:
    Alpha冲刺——第六天
    Alpha冲刺——第五天
    第一次课 圆面积
    计算器第四次作业
    计算器稍微小结
    附加作业3
    2016寒假训练4
    2016寒假训练3
    第三次作业
    2016寒假训练2
  • 原文地址:https://www.cnblogs.com/shouhongxiao/p/1721056.html
Copyright © 2011-2022 走看看