zoukankan      html  css  js  c++  java
  • ajax返回数据之前的loading等待

    首先,我们通过ajax请求,向后台传递参数,然后后台经过一系列的运算之后向前台返还数据,我希望在等待数据成功返还之前可以展示一个loading.gif图

    不废话,在页面上执行点击事件(<a sceneid="@scene.ID" href="javascript:void(0)" onclick="build(this)">生成</a>)

    调用下面方法:

     function build(sender) {
            var jqSender = $(sender);
            var sceneid = jqSender.attr('sceneid');
    
            $.ajax({
                type: 'post',
                url: "Follow/UpdateUrl",
                data: { sceneid: sceneid },
                beforeSend: function () {
                    jqSender.hide().after('<img id="load" src="/images/load.gif"  />');
                },
                success: function (data) {
                    //根据id和class获取td标签
                    $('tbody tr[id=' + sceneid + '] td.wxurl-col').html(data.QRUrl);
                    $('tbody tr[id=' + sceneid + '] td.localkey-col').html(data.LocalKey);
                    //隐藏生成按钮,插入图片
                    var localkey = data.LocalKey;
                    jqSender.after('<img src="/image/' + localkey + '" />');
                },
                complete: function () {
                    $('#load').remove();
                }
            });
        }
    ajax

    后台页面就不写了,url中配置了传递到后台的路径,最主要的就是

    beforeSend: function () { jqSender.hide().after('<img id="load" src="/images/load.gif" />'); },

    这要考虑到ajax异步请求的特点,当ajax执行到url的时候,会有一个线程跳转到后台去执行,

    浏览器会增加一个线程(不知道这么说标不标准)继续执行后面的程序,到success: function (data)暂停等待 后台成功的返回数据

    这样,before里面插入的图片就相当于是一个loading,当数据成功返回后,把before里面的图片移除,写在complete: function ()语句中。

    我后台的处理流程大概是这样的:首先一个http GET请求,获取微信公众平台的access_token,然后再用http POST请求,获取换取微信二维码的ticket

    然后再用WebClient方法,把请求到的二维码下载到本地存储,然后就是数据库的增删查改,展示二维码到网页上。

    这么一大段才让loading有足够的时间展示出来,如果时间比较短,可以网上查查看有没有定义一个时间,让loading能够完整的显示,免得很突兀。

    注:此篇随笔只供参考使用,而且也有很多小瑕疵,最主要的不是代码,逻辑才是最重要的。

  • 相关阅读:
    PHP-Manual的学习----【语言参考】----【基本语法】
    PHP-Manual的学习----【安装与配置】
    Python HTML解析模块HTMLParser(爬虫工具)
    Apache 配置方法(虚拟目录、域名、虚拟主机等)
    Apache httpd.conf配置文件主要内容解释
    Apache Windows下Apache安装步骤
    Apache Linux下Apache安装步骤
    【LOJ】#2055. 「TJOI / HEOI2016」排序
    【LOJ】#2054. 「TJOI / HEOI2016」树
    【LOJ】#2052. 「HNOI2016」矿区
  • 原文地址:https://www.cnblogs.com/Joker37/p/7306136.html
Copyright © 2011-2022 走看看