对于偶然性信号不好,点击多次提交导致的重复入库

这种情况下,用智能提交设置时间为主键行的通吗,智能提交的逻辑是什么

简道云 HHHHH123 发布于 2020-12-17 13:18
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
0
孤陌Lv6资深互助
发布于2020-12-17 13:28(编辑于 2020-12-17 13:44)

正常你应该在填报成功事件写一个刷新的JS 然后填报属性设置好 主键预防唯一  逻辑 就是主键数据相同  就覆盖更新

主键不同 就是插入新数据

if(confirm("数据提交"))   //弹出确认删除对话框  
{
  setTimeout(function(
     _g('${sessionID}').verifyAndWriteReport();   //执行提交入库操作
    }, 1000);
  return true;    //点击确定时,返回值为true,执行如上操作。
}
else
{
   return false//点击取消时,返回值为false,不执行操作。
}

  • HHHHH123 HHHHH123(提问者) 大神,是这样,填报成功会关闭页面或者刷新页面,关键就是信号不好的时候,还没填报成功事件还没成功,就一直点就会重复好几条数据入库
    2020-12-17 13:34 
  • 孤陌 孤陌 回复 HHHHH123(提问者) 你看一下这几次重复入库的时间 是不是一样 如果是 那可以在填报属性 设置时间为主键 如果不相同 那 就设置其他的字段为主键 具有唯一性就好了 这样数据是会覆盖更新的 不跟我用的是JS的提交方法 点击后 弹出确定和取消 选择 点击确定后就关闭了 不会出现点击多次的问题
    2020-12-17 13:37 
  • 孤陌 孤陌 回复 HHHHH123(提问者) 自定义一个按钮 用我上面发的JS 然后填报成功的刷新JS 不要删除
    2020-12-17 13:45 
  • HHHHH123 HHHHH123(提问者) 回复 孤陌 就是不清楚填报成功事件还未成功,这里设置主键还有没有用,我以为是帆软的逻辑是填报成功后再和数据集里的进行对比,写了JS的,纳闷这些人不知道咋填的。。。。 FR.Msg.confirm(\"\",\"确认提交吗?\",function(value){ if(value){ _g(\'${sessionID}\').verifyAndWriteReport(); return true; }else{ return false; } });//confirm确认提示框
    2020-12-17 13:46 
  • 孤陌 孤陌 回复 HHHHH123(提问者) 你可以用数据校验的 然后用SQL公式函数 看一下数据库有没有这条数据 提交后 再提交 校验会报错的 不让提交的
    2020-12-17 13:48 
  • 2关注人数
  • 380浏览人数
  • 最后回答于:2020-12-17 13:44
    请选择关闭问题的原因
    确定 取消
    返回顶部