前言:

上一章详细阐述了dojo的事件绑定操作,本章将讲解dojo的请求操作

注:dojo的请求操作与js和jquery完全不同!

1、dojo的请求

dojo通过request.get()/.put()/.post()/.del()进行请求操作

 request.post("这里放对应的请求接口地址", {
                //解析服务器json数据
                handleAs: "json",
                // 直接从form表单取json对象作为参数
                data: domForm.toObject("formNode"),
                // 超时时间
                timeout: 2000
            }).then(function(response) {
                //正确获得服务器响应后的操作
                dom.byId('svrMessage').innerHTML = JSON.stringify(response);
            });

2、请求的过程中可以绑定不同操作

//请求过程事件绑定
 require(["dojo/dom", "dojo/request", "dojo/request/notify",
         "dojo/on", "dojo/dom-construct", "dojo/query",
         "dojo/domReady!"
     ],
     function(dom, request, notify, on, domConstruct) {
         //开始
         notify("start", function() {
             domConstruct.place("<p>开始</p>", "divStatus");
         });
         //发送
         notify("send", function(data, cancel) {
             domConstruct.place("<p>发送请求</p>", "divStatus");
         });
         //请求成功
         notify("load", function(data) {
             domConstruct.place("<p>加载完毕</p>", "divStatus");
         });
         //请求失败
         notify("error", function(error) {
             domConstruct.place("<p class=\"error\">加载失败</p>", "divStatus");
         });
         //已经完成之后
         notify("done", function(data) {
             domConstruct.place("<p>请求结束 (response processed)</p>", "divStatus");
             if (data instanceof Error) {
                 domConstruct.place("<p class=\"error\">响应失败</p>", "divStatus");
             } else {
                 domConstruct.place("<p class=\"success\">响应成功</p>", "divStatus");
             }
         });
         //停止
         notify("stop", function() {
             domConstruct.place("<p>请求停止</p>", "divStatus");
             domConstruct.place("<p class=\"ready\">准备</p>", "divStatus");
         });

         on(dom.byId("test"), "click", function(evt) {
             //清空id为divStatus内部元素
             domConstruct.empty("divStatus");
             request.get("getTime", //请求地址
                 {
                     query: this.id = "successbtn",
                     handleAs: "json" //返回的是json数据
                 }).then(function(data) {
                 //发送请求成功后的操作
                 alert("获取成功" + data.data);
                 //发送请求失败后的操作
             }, function(error) {
                 alert("获取失败" + error);
             });
         });
     }
 );

3、与jquery相似,dojo也提供隐藏数据的data()操作

要进行data()操作必须引入NodeList-data和NodeList-manipulate模块

如下所示

var NodeList = require(["dojo/NodeList-data", "dojo/NodeList-manipulate", "dojo/domReady!"], function(NodeList) {
    //设置隐藏数据
    function setData(node) {
        query(node).data("updated", new Date());
    }
    //获取隐藏数据
    function getData(node) {
        var str = query(node).data("updated");
        console.log(str);
    }

到这里dojo的常用操作部分基本讲解完毕了,dom操作可以操作页面增删改,事件绑定操作处理事件绑定,本章请求处理用于处理get/post/put/delete四种请求,普通页面操作基本都可以做到了,后面如果发现前面漏掉的地方将会进一步进行补充。

接下来将开始dojo的高级部分学习

Dojo初探之5:dojo的request(请求)操作、请求过程事件绑定和隐藏数据data()操作(基于dojo1.11.2版本)的更多相关文章

  1. Dojo初探之3:dojo的DOM操作、query操作和domConstruct元素位置操作(基于dojo1.11.2版本)

    前言: 前面两章讲了dojo的基本规范和配置,当然这个配置不是必须的,当你有这需求的时候就可以用到dojo的config配置. dojo的所有js都是符合AMD规范进行异步加载的:http://blo ...

  2. Dojo初探之4:dojo的event(鼠标/键盘)事件绑定操作(基于dojo1.11.2版本)

    前言: 上一章详解了dojo的dom/query操作,本章基于dom/query基础上进行事件绑定操作 dojo的事件 dojo的事件绑定操作分为鼠标和键盘两种进行详解 1.鼠标事件 我们沿用上一章中 ...

  3. Dojo初探之2:设置dojoConfig详解,dojoConfig参数详解+Dojo中预置自定义AMD模块的四种方式(基于dojo1.11.2)

    Dojo中想要加载自定义的AMD模块,需要先设置好这个模块对应的路径,模块的路径就是这个模块的唯一标识符. 一.dojoConfig参数设置详解 var dojoConfig = { baseUrl: ...

  4. Dojo初探

    Dojo 是一个由 Dojo 基金会开发的 Javascript 工具包, 据说受到 IBM 的永久支持,其包括四个部分: dojo, dijit, dojox, util dojo: 有时也被称作 ...

  5. dojo事件驱动编程之事件绑定

    什么是事件驱动? 事件驱动编程是以事件为第一驱动的编程模型,模块被动等待通知(notification),行为取决于外来的突发事件,是事件驱动的,符合事件驱动式编程(Event-Driven Prog ...

  6. Configuring Dojo with dojoConfig - The Dojo Toolkit

    转载自Dojo官网 Configuring Dojo with dojoConfig The dojoConfig object (formerly djConfig) allows you to s ...

  7. dojo/Deferred类和dojo/promise类的使用

    参考博客:https://blog.csdn.net/blog_szhao/article/details/50220181        https://dojotoolkit.org/docume ...

  8. (ExtJs 3.4)Ext.Ajax.request的同步请求实现

    ext3.0之前都是这样来提交:var responsea = Ext.lib.Ajax.getConnectionObject().conn;responsea.open("POST&qu ...

  9. Volley(二)—— 基本Request对象 & RequestQueue&请求取消

    详细解读Volley(一)—— 基本Request对象 & RequestQueue&请求取消 Volley它非常适合去进行数据量不大,但通信频繁的网络操作,而对于大数据量的网络操作, ...

随机推荐

  1. 《Effective C#》读书笔记-1.C# 语言习惯-1.使用属性而不是可访问的数据成员

    思维导图: 大纲: 1.使用属性而不是可访问的数据成员    属性        指定不同的访问权限        隐式属性降低了声明属性的工作量        允许将数据成员作为公共接口的一部分暴露 ...

  2. 规范模式-------From ABP Document

    介绍 规范模式是一种特定的软件设计模式,通过使用布尔逻辑 (维基百科)将业务规则链接在一起,可以重新组合业务规则. 在实际中,它主要用于 为实体或其他业务对象定义可重用的过滤器. 例 在本节中,我们将 ...

  3. Quartz (二) 和Spring整合

    先给个场景:每五分钟扫描并关闭7天未付款的订单 1.quartz pom.xml依赖 <dependencies> <dependency> <groupId>or ...

  4. Python学习之路-Day2-Python基础3

    Python学习之路第三天 学习内容: 1.文件操作 2.字符转编码操作 3.函数介绍 4.递归 5.函数式编程 1.文件操作 打印到屏幕 最简单的输出方法是用print语句,你可以给它传递零个或多个 ...

  5. 密码学之DES/AES算法

    本文示例代码详见:https://github.com/52fhy/crypt-demo DES DES全称为Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算 ...

  6. vue动态加载图片,取消格式验证

    vue 一. 动态加载图片 (以vue模板为例) app.vue 代码如下: <template> <div id="app"> <img :src= ...

  7. angular.js的ui-router总结

     ui-route     先有个网址,再在这个网址下写路由   子路由的搭建   我们的布局/模板文件 index.html 我们通过建立一个主文件来引入我们所需要的所有资源以开始我们的项目 ,这里 ...

  8. 弹出输入内容prompt

    <script> window.onload = function(){ var oBtn = document.getElementById( "btn" ); oB ...

  9. python 基本数据类型set

    set 是一个无序且不重复的序列 set 是一个无序且不重复的序列 set 不允许重复的集合.set不允许重复的序列 1.创建 s=set() #创建空集合只能用这种方法 s={11,222,233, ...

  10. PHP导出生成excel文件

    composer包管理工具还是非常好用的 下载安装的扩展比较靠谱 无需自己解决扩展BUG 省时省力提高效率 1.下载安装composer自行百度 2.通过composer下载安装office 3.不在 ...