zoukankan      html  css  js  c++  java
  • AjaxPro在.NET中的应用

      一、简介

      Ajax(Asynchronous JavaScript + XML)应用可以仅向服务器发送并取回必需的数据,它使用SOAP或其它一些基于XML的web service接口,并在客户端采用JavaScript处理来自服务器的响应。因为在服务器和浏览器之间交换的数据大量减少,结果我们就能看到响应更快的应用。同时很多的处理工作可以在发出请求的客户端机器上完成,所以Web服务器的处理时间也减少了。
      Ajax应用程序的优势在于:
      1. 通过异步模式,提升了用户体验
      2. 优化了浏览器和服务器之间的传输,减少不必要的数据往返,减少了带宽占用
      3. Ajax引擎在客户端运行,承担了一部分本来由服务器承担的工作,从而减少了大用户量下的服务器负载。

      二、配置  

      Ajax.net有AjaxPro.dll和Ajax.dll两个版本,这两个版本使用上虽然差不多,但还是有区别的,主要的区别如下:
      (1)web.config配置文件不一样
      Ajax.dll的配置文件写法为
      <add verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax" />
      AjaxPro.dll的配置文件写法为
      <add verb="*" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory, AjaxPro"/>

      (2)调用服务器方法的时候方式不一样,有很多朋友就是因为这个原因,发现命名空间找不到或者对象未定义
      引用Ajax.dll的时候,调用服务器方法不要加命名空间,
      应用AjaxPro.dll的时候,调用服务器方法需要加命名空间
      例如当页面设置为这种设置的时候
    <%@ Page language="c#" Codebehind="Test.aspx.cs" AutoEventWireup="false" Inherits="Web.Test" %>


      (3)客户端调用方式不一样
      Ajax.dll为
      var response=Test.GetServerMethod();
      alert(response.value);

      AjaxPro.dll为
      var response=Web.Test.GetServerMethod();
      alert(response.value);

      三、使用步骤

      1、首先下载AjaxPro 组件。并将AjaxPro.dll引用到网站(或项目)。

      2、修改Web.config。在 <system.web> 元素中添加以下代码。

      <configuration>
      <system.web>
      <httpHandlers>
      <!-- Register the ajax handler -->
      <add verb="*" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory, AjaxPro"/>
      </httpHandlers>
      </system.web>
      </configuration>

      3、对AjaxPro在页Page_Load事件中进行运行时注册。如:

         protected void Page_Load(object sender, EventArgs e)
          {
              AjaxPro.Utility.RegisterTypeForAjax(typeof(_Default));//这的_Default是指页面
               类的类名。如是放在命名空间,则需要写上完整的命名空间(如:namespaces._Default)
          }

      4、创建服务器端方法。只要给一个方法加上[AjaxPro.AjaxMethod]标记,
         该方法就变成一个AjaxPro可进行影射调用的方法。如下:
         [AjaxPro.AjaxMethod]
          public string getValue(int a,int b)
          {   
               //该方法我们将实现从客户端传入两个数,在服务器端相加计算后返回到客户端。 

              return Convert.ToString(a+b);
          }  

       5、客户端调用。
      <script language="javascript">
         function getValue(){   
         _Default.getValue(1,2,getGroups_callback);//该处即调用服务器端的_Default.getValue方法。
                   这在里边需要指定个回调函数,以接受服务器端处理完后返回客户端结果。
         form1.TextBox1.value="123";
           }  
         //这个方法用户接受并处理服务器端返回的结果。
         function getGroups_callback(response){
         var dt=response.value;
         alert(dt);
         }
      </script>   

      四、实例

    前台代吗
    后台代码
  • 相关阅读:
    多表联合查询,利用 concat 模糊搜索
    order by 中利用 case when 排序
    Quartz.NET 3.0.7 + MySql 动态调度作业+动态切换版本+多作业引用同一程序集不同版本+持久化+集群(一)
    ASP.NET Core 2.2 基础知识(十八) 托管和部署 概述
    ASP.NET Core 2.2 基础知识(十七) SignalR 一个极其简陋的聊天室
    ASP.NET Core 2.2 基础知识(十六) SignalR 概述
    ASP.NET Core 2.2 基础知识(十五) Swagger
    ASP.NET Core 2.2 基础知识(十四) WebAPI Action返回类型(未完待续)
    linux磁盘管理 磁盘查看操作
    linux磁盘管理 文件挂载
  • 原文地址:https://www.cnblogs.com/dreamof/p/1374099.html
Copyright © 2011-2022 走看看