官方教程:Ajax with Dojo
Ajax功能:
1.从服务器加载静态数据
2.从web服务中访问xml或json类型的数据
3.将表单(form)数据发送到服务器
4.刷新页面内容
。。。。
Ajax在RIA中是核心技术,下面来看看Dojo是如何运用它的。

// Require the xhr module

require(["dojo/_base/xhr", "dojo/dom"],
    function(xhr,dom) {

// Local var representing the node to be updated

var availabilityNode = dom.byId("availabilityNode");

// Using xhr, as very little information is being sent
xhr.get({
    // The URL of the request
    url: "check-username.php",
    // Allow only 2 seconds for username check
    timeout: 2000,
    // Send the username to check base on an INPUT node's value
    content: {
        username: dom.byId("usernameInput").value.toLowerCase()
    },
    // The success callback with result from server
    load: function(result) {
        if(result == "available") {
            availabilityNode.innerHTML = "Username available!";
        }
        else {
            availabilityNode.innerHTML = "Username taken!  Please try another.";
        }
    },
   
// The error handler
    error: function(errorMessage){
        alert(errorMessage);
    }
,

    // The complete handler
    handle: function() {
        hasBeenSent = true;
    }

});
});

首先要引入包dojo/_base/xhr。
然后通过调用xhr.get或xhr.post这两个常用的方法来发送请求。
这两个方法的参数是一个对象,包含以下属性:
url:请求的服务器地址
handleAs:返回数据的格式,默认为"text",可选"json","javascript"(加载并执行),"xml"
timeout:请求超时,以毫秒记算,当超过这个时间视为请求失败并触发error处理函数
content:请求时发送的内容,是一个“键-值”对形式的对象。如果调用的是get方法,会被转换为一个字条串,如果是post方法,则转换为post内容体。
form:指定一个表单节点对象,将会发送表单内所有的数据,此时如果没有指定url,将会采用form属性action的值,如果同时设置content将会覆盖form中的内容,不建议同时使用

当服务器接受到请求并做出回应后,可以通过以下三个方法来处理:
load(response, ioArgs):请求成功时的回调函数,第一个参数就是根据handleAs指定的格式返回的数据内容。
error(errorMessage) :请求失败时的回调函数,数据为失败的信息
handle(response, ioArgs) :不论成功或失败都将调用的回调函数
根据请求是否成功,首先会调用load/error函数,然后调用handle

JSON数据结构
JSON是以“键-值”对为单位的数据结构,如{"name":"mqsy_yj", "age":30,"ismale",true},键为"name",值为"mqsy_yj"。
“键-值”对之间用逗号分隔,大括号为一个JSON对象,多个JSON对象用逗号分隔并包含在一个中括号内为一个JSON对象数组。
在dojo中对JSON的处理方法为:
require(["dojo/_base/array"],function(array){
    var jsonData = {"newsItems":[{"name":"mqsy_yj", "age":30,"ismale",true},{"name":"mqsy_yj1", "age":31,"ismale",false}]};
    var content = "";

                // For every news item we received...
                arrayUtil.forEach(jsonData.newsItems, function(newsItem) {
                    // Build data from the JSON
                    content += "<h2>" + newsItem.name+ "</h2>";
                    content += "<p>" + newsItem.age+ "</p>";
                    content += "<p>" + newsItem.ismale+ "</p>";
                });

});

转载于:https://www.cnblogs.com/tiandi/p/3415910.html

dojo 十 ajax dojo/_base/xhr相关推荐

  1. ajax dojo deferred,dojo(四):ajax请求

    储备知识 1.在介绍新版本的ajax请求之前,需要先了解一些dojo/Deferreds. 初次听到"Deferred"这个概念,可能会觉得这是一个神秘的东西.实际上它在执行异步操 ...

  2. 用Dojo实现Ajax请求:XH“.NET研究”R、跨域、及其他

    在任何浏览器上方便地实现Ajax请求是每一个Ajax框架的初衷.Dojo在这方面无疑提供了非常丰富的支持.除了XMLHttpRequest之外,动态script.iframe.RPC也应有尽有,并且接 ...

  3. dojo 官方翻译 dojo/_base/array 版本1.10

    官方地址:http://dojotoolkit.org/reference-guide/1.10/dojo/_base/array.html#dojo-base-array array模块dojo进行 ...

  4. dojo 九 effects dojo/_base/fx 和 dojo/fx

    官方教程:Dojo Effects 这里讲学习一下dojo如何实现淡入.淡出.滑动等效果. 实现这些特殊的效果有两个包 dojo/_base/fx 和 dojo/fx. dojo/_base/fx 中 ...

  5. Dojo API中文 Dojo内容模块概览,初学者

    官网:http://dojotoolkit.org/reference-guide/1.10/dojo/index.html#dojo-dojo的翻译 dojo 内容: dojo dojo/dojo ...

  6. dojo初解和dojo.connect用法(转)

    最近在学习arcgis javascript api,javascript api是基于Dojo,所以先熟悉一下Dojo. DOJO常用的: 1,通过dojo.require以类似C编程中#inclu ...

  7. dojo Quick Start/dojo入门手册--package机制

    说完了dojo里的类继承机制,不得不说说package机制. 主要用到的有 dojo.require dojo.provide dojo.registerModulePath dojo.require ...

  8. dojo Quick Start/dojo入门手册--xmlhttp dojo.xhrGet

    OK,介绍了简单的DOM操作方法,接下来该到Ajax的传统项目-XmlHttp了.在使用xmlhttp时,需要注意到编码的问题,要让dojo默认绑定为utf-8怎么办呢?很简单,只需要修改一下引入do ...

  9. ArcGIS中加载模块时dojo/domReady!和dojo/ready的区别

    我们在使用ArcGIS Javascript  API开发时,最开始要先加载模块: <script>require(["esri/map", "dojo/do ...

最新文章

  1. 初学者必学的C++项目!花3天搞定
  2. archlinux安装chrome-webdriver
  3. 红黑树分为红和黑有什么好处_彻底搞懂红黑树
  4. Java LinkedList类基本用法
  5. python 文本处理库_推荐8种目前Python使用率最高的文本处理工具
  6. Micropython教程之TPYBoard开发板驱动舵机教程(萝卜学科编程教育)
  7. 49个Python的常见操作/技巧/例子
  8. 360好还是电脑管家好_安装了电脑管家,为什么电脑还是卡?
  9. OSI参考模型在网络系统中的应用浅析
  10. c语言进程调度报告,操作系统C进程调度算法实验报告
  11. 奔图打印机显示未连接_奔图打印机常见故障及解决方法
  12. APP限制录屏怎么办?如何绕过APP录屏限制和截图限制-支持安卓和IOS
  13. js利用点击事件更换皮肤
  14. 小程序源码:经典语录大全微信小程序下载多种分类语录
  15. 广义相对论-学习记录6-第三章-张量分析与黎曼几何3
  16. fetchone()和fetchall()的准确读音
  17. 国产Linux系统UOS安装
  18. 电商API数据采集,教你如何获取商品详情数据
  19. 软件体系结构层次风格
  20. DWcs4右下角没有html文件,Dreamweaver cs4 cs5 spry菜单栏使用教程 详细教程 超好珍藏...

热门文章

  1. pythonajax学习_python学习-- django 2.1.7 ajax 请求
  2. 成功没有捷径python_成功,大部分时候并没有捷径
  3. mysql8.0.20安装教程linux_Linux下安装mysql-8.0.20的教程详解
  4. linux java占用199%,linux分区使用率过高又查询不到被哪些文件占用的问题
  5. 远程开启admin$共享(远程管理需开启如dameware软件)
  6. Unity3D之Material(材质、着色器、纹理)
  7. mybatis映射多对多查询实现
  8. CentOS学习笔记 - 7. jekins安装 1
  9. 在 Linux 下使用 RAID(九):如何使用 ‘Mdadm’ 工具管理软件 RAID
  10. MySQL数据库加密和解密~认证登陆密码(mysql.user)和MySQL不区分大小写