Dojo初探之5:dojo的request(请求)操作、请求过程事件绑定和隐藏数据data()操作(基于dojo1.11.2版本)
前言:
上一章详细阐述了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版本)的更多相关文章
- Dojo初探之3:dojo的DOM操作、query操作和domConstruct元素位置操作(基于dojo1.11.2版本)
前言: 前面两章讲了dojo的基本规范和配置,当然这个配置不是必须的,当你有这需求的时候就可以用到dojo的config配置. dojo的所有js都是符合AMD规范进行异步加载的:http://blo ...
- Dojo初探之4:dojo的event(鼠标/键盘)事件绑定操作(基于dojo1.11.2版本)
前言: 上一章详解了dojo的dom/query操作,本章基于dom/query基础上进行事件绑定操作 dojo的事件 dojo的事件绑定操作分为鼠标和键盘两种进行详解 1.鼠标事件 我们沿用上一章中 ...
- Dojo初探之2:设置dojoConfig详解,dojoConfig参数详解+Dojo中预置自定义AMD模块的四种方式(基于dojo1.11.2)
Dojo中想要加载自定义的AMD模块,需要先设置好这个模块对应的路径,模块的路径就是这个模块的唯一标识符. 一.dojoConfig参数设置详解 var dojoConfig = { baseUrl: ...
- Dojo初探
Dojo 是一个由 Dojo 基金会开发的 Javascript 工具包, 据说受到 IBM 的永久支持,其包括四个部分: dojo, dijit, dojox, util dojo: 有时也被称作 ...
- dojo事件驱动编程之事件绑定
什么是事件驱动? 事件驱动编程是以事件为第一驱动的编程模型,模块被动等待通知(notification),行为取决于外来的突发事件,是事件驱动的,符合事件驱动式编程(Event-Driven Prog ...
- Configuring Dojo with dojoConfig - The Dojo Toolkit
转载自Dojo官网 Configuring Dojo with dojoConfig The dojoConfig object (formerly djConfig) allows you to s ...
- dojo/Deferred类和dojo/promise类的使用
参考博客:https://blog.csdn.net/blog_szhao/article/details/50220181 https://dojotoolkit.org/docume ...
- (ExtJs 3.4)Ext.Ajax.request的同步请求实现
ext3.0之前都是这样来提交:var responsea = Ext.lib.Ajax.getConnectionObject().conn;responsea.open("POST&qu ...
- Volley(二)—— 基本Request对象 & RequestQueue&请求取消
详细解读Volley(一)—— 基本Request对象 & RequestQueue&请求取消 Volley它非常适合去进行数据量不大,但通信频繁的网络操作,而对于大数据量的网络操作, ...
随机推荐
- bzoj4766 文艺计算姬
Description "奋战三星期,造台计算机".小W响应号召,花了三星期造了台文艺计算姬.文艺计算姬比普通计算机有更多的艺术细胞.普通计算机能计算一个带标号完全图的生成树个数, ...
- 极光的开源礼物「Aurora IMUI」
今日,奉上我们拙作,仅为开源世界献出绵薄之力. Aurora IMUI,一个通用的即时通讯(IM)UI 库.不局限于任何 IM SDK. 本 UI 库提供了消息列表.输入视图等常用组件. 初心 过去的 ...
- 一个栗子上手CSS3动画
最近杂七杂八的事情很多,很多知识都没来得及总结,是时候总结总结,开启新的篇章- 本篇文章不一一列举CSS3动画的属性,若需要了解API,可前往MDN 在开始栗子前,我们先补补基础知识. css3动画分 ...
- json、xml和java对象之间的转化
其实从面相对象的角度来理解这个问题,就会很清晰.java中的一切皆对象即把世间万物(Everything in the world)看做java对象,任何处理不了的问题都可以先转化成java对象在做处 ...
- django无法加载admin的静态内容的问题(Centos7+Nginx+uwsgi环境下)
Nginx静态资源无法加载,导致admin没有CSS样式: 这个问题,主要是要理解: 1.Django不会去解析静态内容(css,js,img)等,而是交给Nginx去处理,所以nginx.conf要 ...
- R的变量类型和常用函数
一.R的变量类型 也可以说是数据存储方式,有: Vector: 一维阵列 Matrics: 二维阵列,其中所有元素是同一数据类型. factor: 种类变量,可使用levels函数来规定种类变量的各级 ...
- Centos6.5_x86上Oracle11g2 32位的安装与卸载以及相关问题汇总
需要注意的问题: 1.Linux包括内核和要安装的oralce版本是否符合(这个在官方文档中有说明). 2.安装oracle一般会新建一个为oracle的账户,注意在安装的过程中的root和oracl ...
- javaweb之监听器详解
在servlet中定义了多种类型的监听器,他们用于监听事件源分别是servletContext,httpsession,servletrequest 这三个域对象. servlet中监听器主要有三类: ...
- Java内存模型四
volatile的特性 当我们声明共享变量为volatile后,对这个变量的读/写将会很特别.理解volatile特性的一个好方法是:把对volatile变量的单个读/写,看成是使用同一个锁对这些单个 ...
- .NET面试题系列[18] - 多线程同步(1)
多线程:线程同步 同步基本概念 多个线程同时访问共享资源时,线程同步用于防止数据损坏或发生无法预知的结果.对于仅仅是读取或者多个线程不可能同时接触到数据的情况,则完全不需要进行同步. 线程同步通常是使 ...