页面每5s实时刷新一次,当用户操作的时候也会调用同一个方法,就可能导致走2次同样的方法

图片说明
页面每5s实时刷新一次,当用户操作实时刷新1的时候,实时刷新2和3会随着实时刷新1
的选择而显示对应的数据,这就可能出现5s刷新的时候用户也在操作,这就导致了走了
两次后台(用户操作调用的方法和实时刷新调用方法一样),怎么解决这样问题?
我用的是ajax轮询

0

5个回答

我不知道我对你的需求理解的对不对,这个你可以设置一个标签,每次刷新置0,每秒加1,自增到5就自动刷新。

0

你是要控制在怎样的层次呢?如果只是用户的刷新操作与你自动刷新的操作不能同时发生,这比较简单,你说了刷新方法就一个,你搞一个全局的变量,

比如 int lock=0;//0代表可以刷新 1代表当前正在刷新 需要等待
function ss(){
if(lock!=0){
alert("当前正在刷新,请稍后重试")
return;
}
//走到这里说明lock==0 将其修改为1表示要执行刷新了
lock=1;
//执行你的刷新逻辑...
//执行结束后 恢复lock的值 表示其他地方也可以刷新了
lock=0;
}
我不太了解前端的原理,这段控制如果放在后台加上锁就最安全了,放在前端的话基本上也可以满足你的要求了

0

用户操作时 1 停止定时器 2 ajax 3 启用定时器

0

走两次同样的方法并没有什么问题啊。总会有先后的,我觉得前端没什么影响,重点是你后台获取数据分析数据的地方会耗时。你需要加锁。或者你前端一个全局变量。比如我们把性能说差一点。你点击刷新和主动刷新都是一个方法,从开始刷新到后台执行数据,到数据返回布局渲染完成需要五秒。你是担心在这个等待的五秒过程中,又第二次出发请求吧。那就全局变量比如dataflag。默认false,当执行刷新方法的时候,判断为false。则从后台拿数据,同时赋值为true;判断为true的时候,说明后台正在处理数据,直接返回,或者提示数据正在加载中请稍后。等数据返回完成,你回调方法中渲染页面完成后赋值dataflag为false.这样就不会同时执行两次方法了。

0

用定时器事件,5秒轮询,在这个里面做个判断,如果在5秒内用户有自己做操作的话清楚定时器,否则再次开启定时器

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
angularjs初始化时,同一方法调用了2次
先补充一个概念:脏检查。 首先纠正误区,Angular并不是周期性触发脏检查。 只有当UI事件,ajax请求或者 timeout 延迟事件,才会触发脏检查。 为什么叫脏检查? 对脏数据的检查就是脏检查,比较UI和后台的数据是否一致!对于我遇到的问题,是这样的: 首先在全局js文件中,绑定了controller与view的关系:state('orderMang', {
iOS 通知(NSNotificationCenter)执行多次通知的原因
问题描述:在我要提现界面,输入完支付密码支付成功pop到上个界面,然后再次push到我要提现界面,又进行了一次支付操作的时候,发现会执行两次相同的通知。 原因分析:第一次:输入完之后密码之后发出通知给我要提现控制器,我要提现控制器监听到通知后执行相应操作,然后pop到上个界面,此时并没有做移除通知的操作。第二次:重复第一次,由于第一次的通知还没有移除,所...
如何阻止点击两次,发生同样的ajax请求并在页面生成两次重复数据
防止用户点击两次,两次url请求,在页面动态生成重复数据
vue项目如何做到每30秒刷新1次接口?
在vue.js项目中,经常需要对数据实时更新——每隔xx秒需要刷新一次接口——即需要用到定时器相关原理   我们先看一看2种常用定时器: setInterval(function(){}, milliseconds)——会不停的调用函数 setTimeout(function(){}, milliseconds)——只执行函数一次   乍看之下,setInterval会符合我们的业务需...
react-native之每隔一秒刷新页面
react-native之每隔一秒刷新页面
多次调用同一异步方法体会出现使用相同的属性值问题
《一》执行同一个方法体,里面有异步的逻辑代码,如果这个异步请求还没有执行完毕时,我们又对它进行了第二次调用,它会使用最后一次的执行操作。例如:   var test = {   init:function(){ this.temp = "temp" + new Date().getTime(); console.log(this.temp );   self = this; ...
点击UITableViewCell.selected方法被多次调用的解决方案
PS:自打使用了self-manager的设计模式.跳转控制器变得方便多了. 某天.更新Xcode之后发现一个BUG.就是点击Cell之后方法执行两遍.WTF? - (void)setSelected:(BOOL)selected animated:(BOOL)animated { [super setSelected:selected animated:animated]; ...
使用AFNetworking请求数据成功后走了两遍success的原因
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];     [manager GET:urlString parameters:nil progress:^(NSProgress * _Nonnull downloadProgress) {              } success:^(NSURLSess
多线程并发调用多个同一个实例多个带锁的方法,导致死锁~
由于很多时候没有注意到,导致一个service的实现里面的2个方法都加了同一个锁,导致当一个方法繁忙的时候另一个锁的方法死锁,执行不了~~ 解决方法,最好就是把执行次数多的方法另外加锁,不要和其他带锁的方法用同一个锁即可: byte[] lock01 = new byte[0]; public Result synResultByCache(String fid) { synch...
解决vue页面的定时刷新问题
背景描述: 我使用的是vue+element 开发系统,在页面上有一个系统消息,这个消息的数量随时可能发生变化的,比如我已经看了某一条,那这个未读消息数量就应该减少。 于是,这个时候我们就要使用setInterval()了。那么我们应该把定时刷新放在什么位置什么时候触发什么时候清除呢?这就需要我们了解vue的生命周期。 贴下我的代码供参考: 另外,我在查阅资料时看到有这样情况的,我也展示出来...
关于struts2中action请求会执行两次的问题
虽然我只是新手,但是这个问题我必须要说一下! 在struts2的ajax方法中调用了action中的方法:function changeStreet(obj){ $(function(){ $.ajax({ type : "GET", url : "/json/house!getHouseInfo.action", success : function(data
多次点击是否多次请求相同的接口(根据条件判断)
虽然这个是比较菜鸟的功能,但还是想写下来,,以此纪念当时我迷茫可怜的眼神。。。。。。如果有跟我同样可怜的菜鸟前端,,共勉。 1、第一次进入页面的时候点击请求接口,当选择其它城市的时候请求接口,选择相同城市的时候不请求接口。 代码如下,此为完整例子 <!DOCTYPE html> <html> <head> <meta char...
由一个“两次请求”引出的Web服务器跨域请求访问问题的解决方案
我们公司的项目都是前后端分离的,上线几个月以来,发现一个很奇怪的问题,每次前端发起请求,通过浏览器的开发者工具都能看到在Network下同一个url有两条请求,第一条请求的Method为OPTIONS,第二条请求的Method才是真正的GET或者POST,并且,第一条请求无数据返回,第二条请求才会返回正常的数据。 发现这个问题之后,立即组织搜索问题产生的原因以及解决方案。在网上搜索了大量资料,得
url调用一次接口,请求却执行两次
springmvc项目,谷歌浏览器访问 我说下我自己的情况,用url地址请求后台数据,发现后台执行两次 简单来说是谷歌的jsonview插件出了问题 将上图的红圈中的√去掉即可。 还有一个可能则是在过滤器出了问题,出现了多次 chain.doFilter(servletRequest, servletResponse); 出现一次以上在上述语句后加 return; ...
Fragment的OnResume()方法不执行原因及解决办法
前因后果: Fragment依托于Activity,其内部的OnResume和OnPause方法真正归属于其依托的Activity,在Activity可见性变化的时候,才会调用这两个方法;如果在Activity中包含一个ViewPager + 多个Fragment的结构,在Fragment的切换过程中,因为Activity一直显示,所以Fragment切换是不会调用OnResume和OnPause方
记一次Spring MVC 一次请求,后台却访问两次的问题的解决方案
问题是提交表单的时候发现的,发现每次提交表单的时候提交的token都不正确,所以就debug了一下。这时候发现原来每次请求都会去走两遍controller,token会被覆盖。网上看了一些解决方案,可以基本肯定是前端的问题,因为后台是不会无缘无故的走请求的。 1,首先根据referer看请求的来源 可以明显的看到走了两次  /cliCorp/edit ,第一次是正常的跳转,第二次明显是自己
jsp页面每隔3秒刷新一次
1.新建一个Dynamic Web Project项目,里面新建一个jsp文件,整体的框架如下所示: 2.one.jsp里面的代码如下所示: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> example 该页面每隔3秒刷新一次
spring aop 执行两次
系统整合了shiro框架后,发现方法本体执行一次,aop执行两次! 经过研究,是因为系统中有两个代理创建器,生成两个代理类导致的。
【坑】dubbo+zookeeper服务端重复调用三次
今天遇到一个神坑,坑了足足有半天的时间,一直在这个坑里面爬不出来,当然有很大一部分原因是因为我经验不足引起的,今天和大家一起分分享一下这个神坑。坑的场景:项目采用dubbo+zookeeper实现分布式RPC调用。客户端和服务端都是springboot项目,客户端通过RPC远程调用服务端,但是意外的出现了Tried 3 times of the providers的错误,发现服务端对应的接口被重复...
ajax提交表单碰到页面刷新和发送两次请求的问题
今天用ajax提交表单的时候,每次页面都同时发送两次请求,最后发现原来是&amp;lt;button&amp;gt;按钮要给他加上类型(type),否则,当ajax发出请求的时候,会提交表单导致整个页面刷新,将&amp;lt;button type=&quot;button&quot;&amp;gt;或者&amp;lt;input type=&quot;button&quot;&amp;gt; 不然就会提交表单。...
Controller方法莫名其妙的执行两次
最近在做项目时,同事遇到ajax调用一个Controller方法后,该方法在不返回前台的情况下执行两次,导致数据保存了两遍。 简略代码如下: js代码如下: $.ajax({ cache :false, type: "POST", url: "${ctx}/3typePerson/newUserSave", dataType: "JSON", data: $("#edi...
jsp中执行onclick会刷新一次页面的问题
今天做一个注册页面的时候,弄了一个清空的按钮,我执行清空按钮,但是按钮调用的方法 什么都没写,所有文本都清空了 代码如下: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> 我要注册 function resetClick() { }
关于前端跨域 一次动作 两次请求的问题
初涉前后端分离,发现一种情况,在前端ajax请求数据的时候,有时候会向后台一次性发送两次请求,,这两次请求第一次无返回数据,第二次才会返回正确数据。 在两次请求之后的一段时间内,是只发送一次请求的。过了一段时间,就又会出现一次动作 两次请求的情况。 详情见下图: 刚开始以为是自己写的代码有问题,认为可能在请求函数中重复调用了请求,但是仔细检查了n遍后,发现是没有问题的
关于servlet获取请求 但是执行两次sql访问的bug
校验,即数据库中有相同记录,就执行更新操作 而不是执行插入操作。但是这次似乎插入的时候 就直接插入了两条。 在后台日志中 正确的应该是这样的: 获取每个请求,及对应的值:i.ebelter.com 获取每个请求,及对应的值:42.121.59.208 获取每个请求,及对应的值:42.121.59.208 获取每个请求,及对应的值:close showAdvice=true showResult=true count:68 获取userId的用户信息:sql检验sql的执行次数:SELE
JS实现页面加载完成之后自动刷新一次
先贴出代码,如果有兴趣看我解题思路的可以看下,没兴趣的直接拿走用,节省时间。        window.onload = function(){ var url=document.location.href;  //获取浏览器访问栏里的地址         if( url.indexOf("r=")==-1 ){    //判断地址后面是否多了某些值,没有就进方法里进行刷新   var
关于浏览器请求PHP一次请求执行了两次
测试同学今天又双叒反馈了一个Bug 继上次解决了重复请求的问题之后,本来就以为可以万事大吉了,没想到我还是太年轻了,测试同学说,不行啊,老哥,你这个我点击了一次创建居然创建出来两条数据!!并且查看日志的时候,确实是发了两次网络请求!!! 我:????? 排查 1.先看看是不是JS的问题,我们看一下network跟踪一下,没有啊,这只发送了一个请求,挠头,继续, 2.好的,我去我的工位上复...
键盘打开方法会执行多次的问题
监听iOS键盘UIKeyboardWillShowNotification,实现监听方法,发现有的机型上监听方法会多次执行,有的机型没问题。这是为什么? 用一个BOOL值限制键盘监听方法只执行一次,打印键盘高度会发现,第一次键盘出现的监听方法中获取到的键盘高度,是不正确的,是小于键盘实际高度的,当第二次监听方法执行的时候,键盘高度才是实际高度。 键盘出现的监听方法中获取键盘高度可能在某...
安卓混合开发,js调用安卓方法,activity被调用两次解决办法
安卓混合开发,js调用安卓方法,activity被调用两次解决办法 主要的坑在于我使用了a标签的点击事件,导致a的默认事件也起了作用,将a标签改为span就解决了。...
redis实现控制用户一分钟只能操作一次,不能频繁操作
redis实现控制用户一分钟只能操作一次,不能频繁操作
当一个API中具有多个相同请求的方法时的解决方案
//当一个API中具有多个相同请求的方法时可以使用下列两个特性来解决(这里以POST请求为例) [HttpPost] //首先声明该API的请求方式 [Route(&quot;api/Post/One&quot;)] //然后指定该API的具体访问地址 namespace Specialty.API.Controllers { public class PostController : ApiCo...
接口中的两次请求
responseStr.contains("status")&&responseStr.contains("payState") if(!billId.equals("null")){     String responseStr_zhifu=getPay(billId);     System.out.println(responseStr_zhifu);     JSO
Activity 调用两次onCreate()方法的问题
在日志中debug的时候发现每次Activity加载都要调用两次onCreate()方法,百思不得其解,后来百度以后发现 是横屏竖屏的切换造成的,默认会重新调用onCreate()方法,可以进行如下设置: &amp;lt;activity             android:configChanges=&quot;orientation|keyboardHidden&quot;              ......
iOS 多次请求只执行一次
使用 - (void)performSelector:(SEL)aSelector withObject:(id)anArgument afterDelay:(NSTimeInterval)delay;来实现。例子: dic是要传的参数,我的是一个字典类型 [self performSelectorOnMainThread:@selector(sendData:) withObject:dic
ajax执行后台方法执行了两次
进入一个页面时(通过window.location.href=“一个URL”方法跳转页面)ajax执行后台方法了两次?
因为filter问题导致DispatcherServlet执行两次或者多次调用,原理分析
在搭建前台组件化框架过程中,启动程序时发现一个页面请求但是DispatcherServlet执行了多次, 如图: 页面返回了三倍,但是页面请求只有一次,如图: 后台日志: 后来经过各种排查各种调试之后发现原因是过滤器的链调用放在了循环中: 链调用放循环外就好了,如图: 现在来分析原理,因为新建了一个过滤器来做前端相关操作预处理,采用实现javax.servlet.Fi
页面提交一次请求,action执行两次
问题描述:struts2框架,ajax请求下页面提交一次请求,action中的方法会执行两次原因:action中的方法以get开头,所以执行两次,原理不清楚,猜测与struts2的属性驱动有关系(以set、get方式设置和取值)解决方法:把方法名改为以其他字符串开头就好了...
[pop后不走dealloc 再push进来会走一次dealloc]问题记录
关于 NSTimer 和 NSRunLoop 的一些理解 https://www.cnblogs.com/shisishao/p/6564997.htmlIOS开发中NSRunloop跟NSTimer的问题 https://www.cnblogs.com/xwang/p/3547685.html+ (NSTimer *)timerWithTimeInterval:(NSTimeInterval)
配置了 Spring AOP 但会调用两次的问题解决方法
1 发现问题项目配置了 Spring AOP,但会被调用两次:开始 before() [2017-07-26 11:10:18.071] [INFO]:[com.deniro.jail.service.sys.SysLogAspect][log] [com.deniro.jail.service.sys.SysLogAspect.log(SysLogAspect.java:43)] [调用方法:vo
前台按钮避免多次点击(只有该页面刷新后才可以重新点击)
var clickFlag = true;//避免多次点击标记 function doAdd(id) { if (clickFlag) { //代码 clickFlag = false; }else { alert_modal(&quot;请不要多次点击&quot;); } }  
两个路由对应同一组件,页面切换不刷新问题
mounted() { let start = window.location.href.lastIndexOf("/"); let path = window.location.href.slice(start + 1); if (path == "path1") { console.log("path1"); this.getmessage("...