博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Dojo—ajax框架实战
阅读量:5130 次
发布时间:2019-06-13

本文共 3222 字,大约阅读时间需要 10 分钟。

xhrGet 是 XHR 框架中最重要的函数,使用频率也最高。使用它即可以请求服务器上的静态文本资源如 txt、xml 等,也可以获取动态页面 php、jsp、asp 等,只要从服务器返回的是字符数据流即可。

 

除了 xhrGet,Dojo 的 XHR 框架还包含 xhrPost,rawXhrPost,xhrPut,rawXhrPut,xhrDelete 。这几个函数与 xhrGet 类似,使用方法和参数都可以参考 xhrGet 。区别在于他们的 HTTP 请求类型,xhrPost 发送的是 Post 请求,xhrPut 发送的是 Put 请求,xhrDelete 发生的是 Delete 请求。

 

下面我们看几个实例:

 

1使用 xhrGet 请求文本资源

 客户端——

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="HelloDojoAjax.aspx.cs"    Inherits="DojoTest.HelloDojoAjax" %>               

服务端资源——

hello world!!Dojo!

 

 

2、使用 xhrGet 获取Json数据

客户端——

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="DojoAjaxJson.aspx.cs" Inherits="DojoTest.DojoAjaxJson" %>        <%-- 引入 Dojo--%>                  

 

服务端——

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;namespace JqueryAjaxTest.Data{    public partial class GetCity : System.Web.UI.Page    {              protected void Page_Load(object sender, EventArgs e)        {            string result = @"[{""ProvinceId"":""BJ"",""CityName"":""北京""}, {""ProvinceId"":""TJ"",""CityName"":""天津""}]";           //清空缓冲区           Response.Clear();           //将字符串写入响应输出流           Response.Write(result);           //将当前所有缓冲的输出发送的客户端,并停止该页执行           Response.End();        }    }}

 

3、使用xhrGet提交表单

客户端——

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="DojoAjaxText.aspx.cs" Inherits="DojoTest.DojoAjaxText" %>        <%-- 引入 Dojo--%>            
用户名:
密码:

服务端——

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;namespace DojoTest{    public partial class GetService : System.Web.UI.Page    {        protected void Page_Load(object sender, EventArgs e)        {            string id = "";            string pwd = "";            //获取参数            if (!String.IsNullOrEmpty(HttpContext.Current.Request["UserID"]) && !String.IsNullOrEmpty(HttpContext.Current.Request["Password"]))            {                id = HttpContext.Current.Request["UserID"];                pwd=HttpContext.Current.Request["Password"];            }            //清空缓冲区            Response.Clear();            //将字符串写入响应输出流            Response.Write("用户输入id为:"+id+",输入密码为:"+pwd);            //将当前所有缓冲的输出发送的客户端,并停止该页执行            Response.End();        }    }}

 

注意:

1

回调函数PrintResult包含两个参数:response 和 ioArgs。

response:表示从服务器端返回的数据,Dojo 已经根据 handleAs 设置的数据类型进行了预处理。

ioArgs: 这是一个对象,包含调用 xhrGet 时使用的一些参数。之所以把这些信息放在一个对象中并传递给回调函数是为了给回调函数一个执行“上下文”,让回调函数知道自己属于哪个 HTTP 请求,请求有哪些参数,返回的数据是什么类型等。这些信息在调试程序时特别有用。

ioArgs.url:请求的 URL,与调用 xhrGet 时设置的值一样。

ioArgs.query:请求中包含的参数, URL 中“ ? ”后面的内容。

ioArgs.handAs:如何对返回的数据进行预处理,与调用 xhrGet 时设置的值一样。

ioArgs.xhr: xhrGet 函数使用的 XHR 对象。

 

2handleAs预处理方式

text默认值,不对返回的数据做任何处理

xml返回 XHR 对象的 responseXML

javascript使用 dojo.eval 处理返回的数据,返回处理结果

json使用 dojo.fromJSon 来处理返回的数据,返回生成的 Json 对象

json-comment-optional如果有数据包含在注释符中,则只使用 dojo.fromJSon 处理这部分数据,如果没有数据包含在注释符中,则使用 dojo.fromJSon 处理全部数据。

json-comment-filtered数据应该包含在 /* … */ 中,返回使用 dojo.fromJSon 生成的 Json 对象,如果数据不是包含在注释符中则不处理。

 

3、代码中的注释,也说明了一些值得注意的地方。

 

 

转载于:https://www.cnblogs.com/javaspring/archive/2012/08/25/2656479.html

你可能感兴趣的文章
记录:Android中StackOverflow的问题
查看>>
导航,头部,CSS基础
查看>>
[草稿]挂载新硬盘
查看>>
[USACO 2017 Feb Gold] Tutorial
查看>>
关于mysql中GROUP_CONCAT函数的使用
查看>>
OD使用教程20 - 调试篇20
查看>>
Java虚拟机(JVM)默认字符集详解
查看>>
Java Servlet 过滤器与 springmvc 拦截器的区别?
查看>>
(tmp >> 8) & 0xff;
查看>>
linux命令之ifconfig详细解释
查看>>
NAT地址转换
查看>>
Nhibernate 过长的字符串报错 dehydration property
查看>>
Deque - leetcode 【双端队列】
查看>>
人物角色群体攻击判定(一)
查看>>
一步步学习微软InfoPath2010和SP2010--第九章节--使用SharePoint用户配置文件Web service(2)--在事件注册表单上创建表单加载规则...
查看>>
gulp插件gulp-ruby-sass和livereload插件
查看>>
免费的大数据学习资料,这一份就足够
查看>>
clientWidth、clientHeight、offsetWidth、offsetHeight以及scrollWidth、scrollHeight
查看>>
MySQL(一)
查看>>
企业级应用与互联网应用的区别
查看>>