专栏首页eguid开源技术分享Dojo初探之5:dojo的request(请求)操作、请求过程事件绑定和隐藏数据data()操作(基于dojo1.11.2版本)

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

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/eguid_1/article/details/52269701

前言:

上一章详细阐述了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的高级部分学习

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • lucene全文搜索之四:创建索引搜索器、6种文档搜索器实现以及搜索结果分析(结合IKAnalyzer分词器的搜索器)基于lucene5.5.3

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

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

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    eguid
  • shiro开发,shiro的环境配置(基于spring+springMVC+redis)

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    eguid
  • Silverlight性能优化

    Silverlight性能优化 性能优化 监视性能(FPS) Silverlight的呈现性能会因指定的宿主参数和内容的复杂程度而异。 为了监视FPS的值我们...

    用户1172164
  • cssjshtml boostrap+echart 轮播报错解决

    boostrap 轮播组件中的active样式有display属性问题,当没有active样式时 display为none。

    葫芦
  • slim.get_or_create_global_step()

    版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。

    于小勇
  • EMNLP 2019 | 4块GPU搜索1天,神经网络搜索性能还能再改进吗?

    当人工设计的神经网络结构在各项任务上都取得了很好的成绩之后,人类开始思考如何自动设计网络结构。

    AI科技评论
  • 微信小程序教学第三章(含视频):小程序中级实战教程:列表-页面逻辑处理

    § 页面逻辑处理 本文配套视频地址: https://v.qq.com/x/page/n0554dndrez.html 开始前请把 ch3-2 分支中...

    iKcamp
  • 异常检测怎么做,试试孤立随机森林算法(附代码)

    从银行欺诈到预防性的机器维护,异常检测是机器学习中非常有效且普遍的应用。在该任务中,孤立森林算法是简单而有效的选择。

    机器之心
  • 超全的pandas数据分析常用函数总结:下篇

    基础知识在数据分析中就像是九阳神功,熟练的掌握,加以运用,就可以练就深厚的内力,成为绝顶高手自然不在话下!

    朱小五

扫码关注云+社区

领取腾讯云代金券