zoukankan      html  css  js  c++  java
  • 巧用Ajax的beforeSend 提高用户体验

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

    1 $.ajax({
    2     beforeSend: function(){
    3      // Handle the beforeSend event
    4     },
    5     complete: function(){
    6      // Handle the complete event
    7     }
    8     // ......
    9 });

    防止重复数据

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

    举个例子:

     1 // 提交表单数据到后台处理
     2 $.ajax({
     3     type: "post",
     4     data: studentInfo,
     5     contentType: "application/json",
     6     url: "/Home/Submit",
     7     beforeSend: function () {
     8         // 禁用按钮防止重复提交
     9         $("#submit").attr({ disabled: "disabled" });
    10     },
    11     success: function (data) {
    12         if (data == "Success") {
    13             //清空输入框
    14             clearBox();
    15         }
    16     },
    17     complete: function () {
    18         $("#submit").removeAttr("disabled");
    19     },
    20     error: function (data) {
    21         console.info("error: " + data.responseText);
    22     }
    23 });

    模拟Toast效果

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

     1 $.ajax({
     2     type: "post",
     3     contentType: "application/json",
     4     url: "/Home/GetList",
     5     beforeSend: function () {
     6         $("loading").show();
     7     },
     8     success: function (data) {
     9         if (data == "Success") {
    10             // ...
    11         }
    12     },
    13     complete: function () {
    14         $("loading").hide();
    15     },
    16     error: function (data) {
    17         console.info("error: " + data.responseText);
    18     }
    19 });
  • 相关阅读:
    logging模块
    解压序列
    python碎片
    python碎片化
    [转]pycharm快捷键
    ios开发之自定义textView
    iOS 开发之字典写入文件
    iOS 开发之内存泄漏问题
    自己写小测试 内容:添加,删除,修改,详情,导出,上传文件,easyui tree树
    使用 jxl 实现复杂的excel 表格导出 java代码
  • 原文地址:https://www.cnblogs.com/front-end-develop/p/8256853.html
Copyright © 2011-2022 走看看