巧用Ajax的beforeSend 提高用户体验

jQuery是经常使用的一个开源js框架,其中的$.ajax请求中有一个beforeSend方法,用于在向服务器发送请求前执行一些动作。
具体可参考jQuery官方文档:http://api.jquery.com/Ajax_Events/

$.ajax({
    beforeSend: function(){
     // Handle the beforeSend event
    },
    complete: function(){
     // Handle the complete event
    }
    // ......
});

防止重复数据

在实际项目开发中,提交表单时常常由于网络或者其原因,用户点击提交按钮误认为自己没有操作成功,进而会重复提交按钮操作次数,如果页面前端代码没有做一些相应的处理,通常会导致多条同样的数据插入数据库,导致脏数据的增加。要避免这种现象,在$.ajax请求中的beforeSend方法中把提交按钮禁用掉,等到Ajax请求执行完毕,在恢复按钮的可用状态。

举个例子:

// 提交表单数据到后台处理
$.ajax({
    type: "post",
    data: studentInfo,
    contentType: "application/json",
    url: "/Home/Submit",
    beforeSend: function () {
        // 禁用按钮防止重复提交
        $("#submit").attr({ disabled: "disabled" });
    },
    success: function (data) {
        if (data == "Success") {
            //清空输入框
            clearBox();
        }
    },
    complete: function () {
        $("#submit").removeAttr("disabled");
    },
    error: function (data) {
        console.info("error: " + data.responseText);
    }
});

模拟Toast效果

ajax请求服务器加载数据列表时提示loading(“加载中,请稍后...”),

$.ajax({
    type: "post",
    contentType: "application/json",
    url: "/Home/GetList",
    beforeSend: function () {
        $("loading").show();
    },
    success: function (data) {
        if (data == "Success") {
            // ...
        }
    },
    complete: function () {
        $("loading").hide();
    },
    error: function (data) {
        console.info("error: " + data.responseText);
    }
});
时间: 2024-08-06 15:42:27

巧用Ajax的beforeSend 提高用户体验的相关文章

从4个方面提高用户体验

编者按:一直以来看不见摸不着的用户体验究竟是什么?如何了解改变它?今天腾讯游戏的妖哥从4个方面入手,将用户体验可视化,帮同学们有方法有步骤地提高用户体验,而不是凭感觉,来学习吧. 记得初学设计时就常常听到这么句话,设计不单单是做出一个极具美感的躯壳,更重要的是它背后的实用价值——所谓设计的实用性.而在互联网里,这种实用性更多的体现在用户体验上.美的视觉表达是第一印象,而酣畅的体验才是灵魂.随着移动互联的日益壮大,用户体验变得越来越重要.与此同时,也有很多人认为炫酷的操作体验或者一些新颖的呈现是好

项目积累(二)细节问题,提高用户体验

前两天和同事讨论公司系统一个身份证录入文本框,发现还有一个要录入年龄的文本框,都感觉挺麻烦的.其实当录入身份证号后,年龄就是固定的,想到这就动手写jQuery来改进系统,提高用户体验. 首先,身份证从第七位开始时年龄段,如:410223199910210000,这样,就获取身份证的从第七位开始和接下来的八位.在获取当前时间,相减获取年龄.这样 做还是不是准确的,还要考虑月份和具体每天.代码如下: 1 var nowDate = new Date(); 2 var month = nowDate.

移动端针对图片过多时,为了提高用户体验性,常采用的两种方式

<1>由于在手机上网络请求太多会造成阻塞,特别是ios设备,然后针对图片的话: 针对图片 一个是做懒加载   提供插件(jquer.lazyload.min.js) 一个是压缩图片尺寸 <2>在说说预加载图片是提高用户体验的一个很好方法,图片预先加载到浏览器中,访问者便可顺利地在你的网站上冲浪,并享受到极快的加载速度.这对图片画廊及图片占据很大比例的网站来说十分有利,它保证了图片快速.无缝地发布,也可帮助用户在浏览你网站内容时获得更好的用户体验.本文将分享三个不同的预加载技术,来增

提高用户体验--子非鱼,须知鱼之乐

9.20号,社河项目开发的某省药监局的项目,1.0版本终于上线测试了,该项目使用了MVC,Spring.net,工作流,Nhibernate等系列的前沿技术,早就拭目以待,迫不及待的想要学习了,终于等到了这天,一睹庐山真面目. 测试结果并不理想,系统的各个功能都实现了,但在提高用户体验度上做得有点差强人意,让我们的大Boss没有看完就喊停了.但起码这个1.0还是跑起来了,只需要我们在提高程序的易用度和友好度上,多下点功夫,相信下一个2.0会让我们耳目一新.现在我们应该脑补一下,关于如何提高用户体

图解浏览器缓存,教你提高用户体验

欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由前端林子发表于云+社区专栏 浏览器缓存,是浏览器端保存数据,用于快速读取或避免重复资源请求的优化机制,有效的缓存使用可以避免重复的网络请求和加快页面速度,从而提高用户体验. 一 强缓存 1.1 区分Expires和Cache-Control 以一个接口返回的响应头为例: 这里我画了张思维导图,对Expires和Cache-Control做比较: 具体介绍Expires和Cache-Control: Expires: (1)Expi

php fastcgi_finish_request让你的程序由等待时间,瞬间完成,提高用户体验

当PHP运行在FastCGI模式时,PHP FPM提供了一个名为fastcgi_finish_request的方法.按照文档上的说法,此方法可以提高请求的处理速度,如果有些处理可以在页面生成完后再进行,就可以使用这个方法. 听起来可能有些茫然,我们通过几个例子来说明一下: <?php echo '例子:'; fastcgi_finish_request(); /* 响应完成, 关闭连接 */ /* 记录日志 */ file_put_contents('log.txt', '生存还是毁灭,这是个问

菜鸟学SSH(十九)——提高用户体验之404处理

只要做过WEB开发人对于"404"已经再熟悉不过了吧.当我们访问的资源不存在时,它就会跑出来跟你打招呼啦.但是默认情况下,404页面比较简陋,不是很友好.而且一般用户不知道404是个神马东东,还以为是程序写的有问题呢.这样一来用户体验就打折扣了.所以通常情况下,我们都需要对这些常见的错误进行处理. Tomcat默认的404页 为了提升用户体验,我们需要简单的配置一下,来让程序遇到404后跳转到我们指定的页面.首先,需要在web.xml文件加入如下配置: <!--404处理 --&

ajax用beforeSend自定义请求过程中客户端事件,提高用户体验

本文为博主原创,未经允许不得转载: 在应用ajax的过程中,当我们再前台提交请求的时候,如果服务端响应事件比较长,就会导致需要等很长时间在前台才能接受到服务端返回的 响应结果,往往会导致用户重复点击按钮,进行重复请求,如何可以避免这种情况发生,ajax提供了一个beforeSend属性,用这个既可以避免这种 情况发生. 用这个属性可以定义客户端向服务端请求过程中的事件,比如在请求过程中禁用请求按钮的属性,或定义请求加载状态等, 实现的代码如下: function exportData(){ $.

如何快速提高网站用户体验

对于网站的SEO推广而言,用户体验可以说是一个不可忽视的根基.一个网站如何没有良好的用户体验,自然不会提升流量更不用谈转化率了.网站的用户体验是从多个方面来衡量的,蝉知小编就和大家探讨下如何提升网站的用户体验度. 绝招一:快 每一个用户都是我们努力引流的结果,千万不要让用户在打开你网站时,半天打不开.一般情况下PC端网站10秒内没打开,移动端3秒内没打开,用户基本上都会直接关掉.况且现在随着移动端超越PC端,搜索引擎也对网站的打开速度有了一定的要求,这一点相信大家都能理解.蝉知小编建议,最好让我