ajaxpro用法小结
这几天把项目中用到的ajaxpro方法学习总结了一下,也参考了网上的一些资料
一、简介
ajax(asynchronose javascript+xml)应用可以仅向服务器发送并取回必需的数据,它使的
SOAP或其他基于XML的web service接口,并在客户端采用javascript处理来自服务器的响应。
因为在服务器和浏览器之间交找的数据大量减少,结果我们就能看到响应更快的应用。同时处理工作可以发出请求的客户端机器上完成,所以web服务器的处理时间也减少了。
Ajax应用程序的优势在于:
1通过异步模式,提升了用户体验
2优化了浏览器和服务器之间的传输,减少了不必要的数据往返,减少了带宽的占用
3Ajax引擎在客户端运行,承担了一部分本来由服务器承担的工作,从而减少了大用户量下的服务器负载
二、配置
Ajax.net有AjaxPro.dll和Ajax.dll两个版本,这两个版本在使用上虽然差不多,但还是有区别的,主要的区别如下:
web.config配置文件不一样
(1)web.config配置文件不一样
ajax.dll的配置文件的写法为
<add verb="post,get" path="ajax/*.ashx" type="ajax.pagehanderfactory,ajax"/>
ajaxpro.dll的醋置文件写法为
<add verb="*" path='ajaxpro/*.ashx" type="ajaxpro.ajaxhanderfactory,ajaxpro"/>
(2)调用服务器方法的时候方式 不一样,很多朋友就是因为这个原因,发现命名空间找不到或者对象未定义
调用ajax.dll的时候调用服务器方法不要加命名空间
应用ajaxpro.dll的时候,调用服务器方法需要加命名空间
ajax.dll为
var response=Web.GetServermethod();
alert(response.value);
ajaxpro.dll为
var response=web.test.getserverMethod();
alert(response.value);
三、使用步骤
1,首先下载ajaxpro组件。并将ajaxpro.dll引用到网站
修改webconfig。在<system.web>元素中添加以下代码
<httpHandlers><add path="ajaxpro/*.ashx" verb="POST,GET" type="AjaxPro.AjaxHandlerFactory, AjaxPro.2"/>/*这里就是注册的代码*/<remove verb="*" path="*.asmx"/><add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/><add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/><add verb="GET,HEAD" path="ScriptResource.axd" validate="false" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/></httpHandlers>
3对ajaxpro在页page_load事件中进行运行注册。如
protected void Page_Load(object sender, EventArgs e) { Response.Expires = -1;//清除页面缓存 AjaxPro.Utility.RegisterTypeForAjax(typeof(ZHGL_KHListAddandEdit));//将此后台页面类,注册到前台if (!this.IsPostBack) { } }
4服务器方法的注册
[AjaxPro.AjaxMethod(AjaxPro.HttpSessionStateRequirement.ReadWrite)]//或者[AjaxPro.AjaxMethod()] public DataTable DataBingCity(string prcID) {return DBUtility.DbHelperSQL.Query("select * from GG_City where ProvinceID=" + prcID + "").Tables[0]; }
用户页面js调用
//省市二级联动 function GetCity(prcID) { form1.ddlCity.length = 1;var rsl = InvestCallSys.SeatMange.ZHGL_KHListAddandEdit.DataBingCity(prcID).value;//写上完整的引用空间+类名+服务器端注册函数if (rsl != null && typeof (rsl) == "object") {for (var i = 0; i < rsl.Rows.length; i++) { op = new Option(rsl.Rows[i]["Name"], rsl.Rows[i]["Name"]); form1.ddlCity.options.add(op); } } }
目前项目中用到最多的就是这种形式,之前还有一种是ExtJs方法,这是他们的官方网站http://extjs.org.cn/
写到这里我们再来看一下silverlight中,后台程序是如何和前台js互相操作的
public Container() { InitializeComponent(); VarList.Container = this; txtWidth.Text = this.container.Width.ToString(); txtHeight.Text = this.container.Height.ToString(); HtmlPage.RegisterScriptableObject("xml", this);//注册一个可以被脚本调用的当前页面的对象实例 if (HtmlPage.Window.GetProperty("GetValue") != null)//检验页面脚本是否存在该scripobject对象 HtmlPage.Window.Invoke("GetValue"); Application.Current.Host.Content.FullScreenChanged += new EventHandler(Content_FullScreenChanged); }
这是一个xaml页面加载时候实例化事件
这里的htmlpage是一个静态类(允许访问和操作浏览器的文档对象模型(DOM)不同与(BOM浏览器对象模型)嘿嘿
这个类中可以将当前类注册到前台,取名为xml
这里跟ajaxpro类似,还需要将你要调用的后台方法前加属性
[ScriptableMember]public void SetNameAndXml(string xml) {if (!string.IsNullOrEmpty(HtmlPage.Document.QueryString["wfName"])) wfname = HttpUtility.UrlDecode(HtmlPage.Document.QueryString["wfName"]);if (!string.IsNullOrEmpty(HtmlPage.Document.QueryString["wfEntity"])) _entitycode = HtmlPage.Document.QueryString["wfEntity"]; inputxml(xml); }
然后前台页面调用
function GetValue() {var xaml = $get('Xaml1'); //window.dialogArguments.getxml() xaml.content.xml.SetNameAndXml(window.dialogArguments.getxml()); }
转载于:https://www.cnblogs.com/tnspop/archive/2012/03/14/2395362.html
ajaxpro用法小结相关推荐
- oracle @spool,Oracle spool 用法小结
Oracle spool 用法小结 转自:http://wallimn.javaeye.com/blog/472182 对于SPOOL 数据的SQL,最好要自己定义格式,以方便程序直接导入,SQL语句 ...
- js push(),pop(),unshift(),shift()的用法小结
js中push(),pop(),unshift(),shift()的用法小结 1.push().pop()和unshift().shift() 这两组同为对数组的操作,并且会改变数组的本身的长度及内容 ...
- C++ :: 的用法小结
原文:http://blog.csdn.net/whz_zb/article/details/6843369 :: 的用法小结: 用于将类内声明的静态数据成员在类外初始化: 用于将类内声明的函数成员在 ...
- Java中getResourceAsStream的用法小结
2019独角兽企业重金招聘Python工程师标准>>> Java中getResourceAsStream的用法小结 一.Java中的getResourceAsStream主要有以下三 ...
- setscale方法的用法_基于BigDecimal.setScale的用法小结
1. BigDecimal num1 = new BigDecimal(2.225667);//这种写法不允许,会造成精度损失 2. BigDecimal num2 = new BigDecimal( ...
- java.nio.ByteBuffer用法小结
转载自 java.nio.ByteBuffer用法小结 在NIO中,数据的读写操作始终是与缓冲区相关联的.读取时信道(SocketChannel)将数据读入缓冲区,写入时首先要将发送的数据按顺序填入 ...
- jsoup解析HTML用法小结
转载自 jsoup解析HTML用法小结 使用HttpClient+jsoup做采集器有一段时间了,发现jsoup很好用,而且还有很多方便的东西都没怎么用上.于是想根据官网上的cookbook来对j ...
- [转]ssh常用用法小结
ssh常用用法小结 1.连接到远程主机: 命令格式 : ssh name@remoteserver 或者 ssh remoteserver -l name 说明:以上两种方式都可以远程登录到远程主机, ...
- Linux: chmod 和 chown用法小结
chmod chmod指令是更改文件读写执行权限的. 文件权限可以通过ls -a或ll来看,在每个文件前有10个字符,第一个是d是文件夹,否则为一划.后面三组rwx,分别是读取,写入和执行的权限; 三 ...
最新文章
- Android 4.4 中 WebView 使用注意事项
- 在 Java 中应用设计模式 - Factory Method
- Java集合常见数据结构-栈/队列/数组/链表/红黑树
- Thinkphp 整合tcpdf
- EasyUI左右布居
- 压缩可以卸载吗_番禺街坊注意!微信发送高清大文件不压缩,网友:QQ可以卸载了?...
- Java引入依赖aar,如何将JAR依赖项包含到AAR库中
- 电脑芯片和服务器芯片,王思聪的服务器和我们的电脑有什么区别?
- Ubuntu/Linux备份/还原系统
- java实验计算机与光盘,JAVA实验指导资料.docx
- python删除word表格中的某一行_python-docx添加和删除表格行、列
- 单个dcm文件含有多帧数据,如何拆分成多个dcm文件
- JAVA设计模式之策略模式
- 【托业】【新托业TOEIC新题型真题】学习笔记4-题库一-P7
- 【计算机组成原理】学习笔记----第一章 计算机系统概述
- Java 8 effectively final
- 第一次进入页面,访问服务器图片报404,刷新或者回退重新进入,就可以加载图片。
- Windows 2008 R2 x64 Enterprise安装postgres (api-ms-win-crt-runtime-l1-1-0.dll、 0x80240017错误)
- 今天是2022年5月21日
- redis mysql 原子计数器_Redis原子计数器incr
热门文章
- 生产管理软件之看板的种类
- intel和AMD CPU性能对比(2016年CPU天梯图)组装电脑必读!
- php游戏简单模块,PHP编写的25个游戏脚本
- 干货|五分钟轻松入门眼动实验软件之Tobii Pro Lab
- 金融服务(银行证券机构方向)etl批量作业集群统一调度平台搭建
- html引用不了自定义字体,html5 – 自定义@ font-face不加载chrome(chrome自定义字体无法渲染)...
- 2020.05.20软件构造听课笔记
- 支持lodop的服务器,C-Lodop云打印
- scratch实现猫捉老鼠(上)
- 小白学Java基础案例(一)