PHP/JS : Preventing doubleinserting with function

标签 php javascript jquery

是的,我遇到了一个我以为没有的问题。

当您提交时,它会运行一个 javascript 函数,该函数会运行 ajax 调用。该函数的名称如下(函数中的第一行):

 $('#submitWall').attr('disabled', true);

这非常有效,但对于速度更快的人来说效果不太好...我尝试非常快地单击/按回车键,并将其插入数据库 2-3 次。

我想阻止这种情况发生。正如我所说,我有上述内容,但并没有 100% 解决问题。

在 JS/jquery 或者 PHP 中是否有解决方案,所以有一个 1 秒的时间限制......?

这是我的功能:

    function DoWallInsert(BuID, uID){
     $('#submitWall').attr('disabled', true);
  var wrapperId = '#wall_insert';
    $.ajax({ 
       type: "POST",
       url: "misc/insertWall.php",
    data: {
    value: 'y',
    BuID : BuID,
    uID : uID,
    message : $('#message').val() 
    },
       success: function(msg){
$('#submitWall').attr('disabled', false);
     $(wrapperId).prepend(msg);
     $(wrapperId).children().first().slideDown('slow');
     $('#message').val("");
        }
     });
}

最佳答案

我认为这里的问题是,由于javascript运行单线程,属性更改直到函数结束才生效。

如果您将Timeout设置为具有最小延迟的另一个函数,并让该函数执行所有其余的处理,并且可能还让第一个函数首先测试该属性,如果它已经被禁用,则进行救助,这可能会阻止这种情况。

由于 Javascript 是单线程,即使第一个函数在 gui 更新之前连续运行两次,第二个调用仍应将其视为已禁用并忽略您的点击。

首先检查属性可能就足够了,如果它被禁用,则退出函数。

 if($('#submitWall').attr('disabled'))
      return ;

关于PHP/JS : Preventing doubleinserting with function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4025199/

相关文章:

php - Woocommerce 日期选择器始终开启

php - 在 PHP 或 JavaScript 中查询大型 XML 文件(600mb+)?

javascript - 如何在函数引用中传递参数

php - 如何使用自定义条件从 PHP 中的多维数组中删除重复值

php - 使用参数从 PHP 调用 AWS Lambda

javascript - 授权的 JavaScript 来源

javascript - Tiktok.com 和 Youtube shorts 如何自动滚动播放视频(在移动设备上)? react Javascript

javascript - .info 文件未加载 javascript drupal

jquery - 可排序 : disable a column in a sortable row

javascript - 如何创建一个使用 javascript 修改自身的书签