页面每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问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
浏览器刷新页面后向服务器发出两次请求的问题
在IE和FireFox下刷新页面,发现服务器接收到两次相同的请求,经过验证,发现是页面中包含了如下代码:此处src为空字符串,浏览器会认为src指向的是当前页面,由于img元素是根据src来获得图片数据的,因此当浏览器第一次请求后显示页面,在解析到此处时将会产生第二次相同请求。在开发中src临时为空的情况还是比较常见,当出现服务器接收到多次相同请求时,可以想想是否是这种原因。
js 每秒钟刷新一次页面 || dorado每秒钟执行一次命令方法
//--格式 setTimeout("方法名()", 1000);//然后再在方法里面再次嵌入上面的语句 //dorado里面这么用 setTimeout("commandIsLogId.execute();", 1000);//然后在commandIsLogId 的onSuccess中写上 上面的语句
浏览器一次刷新操作发出两次请求服务器请求问题
1.检查html是否有未关闭标签 2.检查各引用url的属性是否设置了空值,如IMG,JavaScript标签的src值是否为空 将src设置正确的值
React Native 项目FlatList上拉加载函数onEndReached调用两次的解决办法
问题描述: 在使用FlatList做上拉加载数据的时候,发现onEndReached总是会同时调用两次,据说这个FlatList一个bug。 解决办法: 使用 lodash 避免短时间内重复调用同一个函数 第一步: 需要导入 import * as _ from 'lodash'; 第二步: 在构造方法中做如下配置,其中getMoreData是上拉加载要调用的函数 constructor(pro...
Jquery的Ready方法加载为什么两次?
Ready方法会调用两次? 查看对应的页面是否存在 存在iframe加载这个页面的时候,页面就会加载两次。 $(document).ready(function(){}和onload的区别? 页面加载完成有两种事件: 区别一: 一是ready,表示文档结构已经加载完成(不包含图片等非文字媒体文件); 二是onload,指示页面包含图片等文件在内的所有元素都
Struts2中action的方法被执行两次
两种可能性:
iframe加载两次的问题
$(function(){ var iframe = document.createElement("iframe"); var height = document.documentElement.clientHeight - 100; iframe.height = height; iframe.name = "iframe"; iframe.id = ...
angularjs初始化时,同一方法调用了2次
先补充一个概念:脏检查。 首先纠正误区,Angular并不是周期性触发脏检查。 只有当UI事件,ajax请求或者 timeout 延迟事件,才会触发脏检查。 为什么叫脏检查? 对脏数据的检查就是脏检查,比较UI和后台的数据是否一致!对于我遇到的问题,是这样的: 首先在全局js文件中,绑定了controller与view的关系:state('orderMang', {
vue页面的定时刷新
在做项目时我们肯定会遇到要求该页面几分钟去定时刷新一下获取最新数据这样的情况,那么这个时候我们就要使用setInterval()了。那么我们应该把定时刷新放在什么位置什么时候触发什么时候清除呢?这就需要我们了解vue的生命周期。首先贴一张从官网截下来的图吧。 在该图上我已经标注了触发和清除的时期,那么我们在使用中还有几个需要注意的点。 使用setInterval时this指向的问题。如果...
js隔断刷新 3秒执行一次方法 右下角弹窗
.right{height:100%; top:0; bottom:0; border-top:66px solid #d0e6f1; border-bottom:0px solid #d0e6f1; z-index:1;} .right{height:100%; top:0; bottom:0; solid #d0e6f1; border-bottom:0px solid #d0e6f1;
间隔几秒执行某方法
<br /><br />javascript 间隔5秒执行一个方法<br /> <br />javascript没有类似Thread中的sleep()方法,只能模拟<br /> <br />一个这个方法实现。<br /> <br />function sleep(n){<br /> var start=new Date().getTime();//定义起始时间的<br /> <br />毫秒数<br /> while(true){<br />  var time=new Date().getTime();/
解决同一activity下多个fragment 切换时重复执行onCreateView方法
Fragment之间切换时每次都会调用onCreateView方法,导致每次Fragment的布局都重绘,无法保持Fragment原有状态。 解决的办法是:在Fragment onCreateView方法中缓存View。 private View rootView;//缓存Fragment view
spring MVC中一次url请求却执行目标action两次的解决办法
之前工作的时候遇到这个问题,后来浪费大把时间修改
如何阻止点击两次,发生同样的ajax请求并在页面生成两次重复数据
防止用户点击两次,两次url请求,在页面动态生成重复数据
网页定时刷新的三种方法
1. 页面自动刷新:&amp;lt;meta http-equiv=&quot;refresh&quot; content=&quot;5&quot;&amp;gt;// 注:5,单位为秒,上述表示每隔5s刷新一次2. 刷新时跳转到指定页面&amp;lt;meta http-equiv=&quot;refresh&quot; content=&quot;5;url=http://www.baidu.com&quot;&amp;gt;//注:5s后自动跳到百度3. 页面自动刷新js版&amp;lt;scrip
Vue框架App.vue里面mounted执行了两次解决方案
背景: 4个页面 一个长连接 根据推送过来的页面标识跳转对应的页面 解决方案: 1,如果长链接放在最外层App.vue里面,请求到的所有信息都放到缓存里面或vuex里面,在各页面各取所需。还是长链接在一个页面里面了。可是每跳转一个页面,app里的mounted又被执行一次ps:忘记了我当时为什么放弃了这种作法。 2,如果在各页面分别建立长链接,每跳转一次,重连一次,体验不好。 3,如...
安卓混合开发,js调用安卓方法,activity被调用两次解决办法
安卓混合开发,js调用安卓方法,activity被调用两次解决办法 主要的坑在于我使用了a标签的点击事件,导致a的默认事件也起了作用,将a标签改为span就解决了。...
关于 content中UA设置,导致网页onPageStarted会重新调用
在onPageStarted方法中,更改了请求UA,此时会导致,该onPageStarted方法重新执行一遍。
vue中使用axios请求接口,请求会发送两次
vue中使用axios请求接口,请求会发送两次的问题 浏览器分为简单请求以及非简单请求: 解决方案: 跨域请求需要先发一次Option预请求,OPTIONS是检验是否允许跨域的,如果不希望OPTIONS请求, 直接让后端遇到option直接返回就可以了,前端可不做处理。...
ajax执行后台方法执行了两次
进入一个页面时(通过window.location.href=“一个URL”方法跳转页面)ajax执行后台方法了两次?
页面提交一次请求,action执行两次
问题描述:struts2框架,ajax请求下页面提交一次请求,action中的方法会执行两次原因:action中的方法以get开头,所以执行两次,原理不清楚,猜测与struts2的属性驱动有关系(以set、get方式设置和取值)解决方法:把方法名改为以其他字符串开头就好了...
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; 不然就会提交表单。...
springmvc请求一次,访问多个controller中的方法
springmvc请求一次,访问多个controller中的方法
多线程并发调用多个同一个实例多个带锁的方法,导致死锁~
由于很多时候没有注意到,导致一个service的实现里面的2个方法都加了同一个锁,导致当一个方法繁忙的时候另一个锁的方法死锁,执行不了~~ 解决方法,最好就是把执行次数多的方法另外加锁,不要和其他带锁的方法用同一个锁即可: byte[] lock01 = new byte[0]; public Result synResultByCache(String fid) { synch...
键盘打开方法会执行多次的问题
监听iOS键盘UIKeyboardWillShowNotification,实现监听方法,发现有的机型上监听方法会多次执行,有的机型没问题。这是为什么? 用一个BOOL值限制键盘监听方法只执行一次,打印键盘高度会发现,第一次键盘出现的监听方法中获取到的键盘高度,是不正确的,是小于键盘实际高度的,当第二次监听方法执行的时候,键盘高度才是实际高度。 键盘出现的监听方法中获取键盘高度可能在某...
spring boot 拦截器执行两次解决方案
内容为原创转载请附地址 原因是:org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController.error 也是一个controller路径为/error @Configuration public class MVCConfig extends WebMvcConfigurationSupport ...
为什么axios请求接口会发起两次请求
之前在使用axios发现每次调用接口都会有两个请求,第一个请求时option请求,而且看不到请求参数,当时也没注意,只当做是做了一次预请求,判断接口是否通畅,但是最近发现并不是那么回事。 首先我们知道了额外的一次请求时option请求,那么这个是干嘛用的呢? 如果只是普通的 ajax 请求,也不会发起这个请求,只有当 ajax 请求绑定了 upload 的事件并且跨域的时候,就会自动发
activity启动模式,返回上一个activity时又调用一次onCreate()方法
造成这种情况的原因:需要设置activity的启动模式为:singleTask:Task内单例模式 Activity中四大启动模式 在AndroidManifest.xml中 ,有一个默认的activity 在它里面可以设置activity启动模式, android:launchMode="“ ,该属性用于配置Activity的加载模式,该属性支持4中属性 每不同的模式出现不同的效果,下面详解
有关viewController中viewDidLoad方法执行多次的问题
今天做一个很简单的视图的切换动画,开始时加载blueView,点切换视图切换到yellowView。于是在viewDidLoad方法里先把blueView创建出来,然后用insertsubview:atindex:方法把它插入到了subview数组里索引为0的地方,也就是做为最底层的子视图。然后在弄个toolbar上面放一个切换按钮,点击可以切换视图就行了。 运行程序,没错
使用AFNetworking请求数据成功后走了两遍success的原因
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];     [manager GET:urlString parameters:nil progress:^(NSProgress * _Nonnull downloadProgress) {              } success:^(NSURLSess
关于百度地图定位 onReceiveLocation执行两次的问题
今天,碰到一个奇怪问题,我的一个界面刷新了两次,一直找都找不到原因,之后发现,原来我的界面刷新是依托在百度地图的回调方法 onReceiveLocation中的,我想是不是这个执行了两次能,我确定了option.setScanSpan(span);//可选,默认0,即仅定位一次,设置发起定位请求的间隔需要大于等于1000ms才是有效的这行代码是配置了,明明只会执行一次,开始执行了两次,实在没办法
Chrome 访问一次 Controller,请求却执行两次
写了一个 Spring Boot 整合 MyBatis Plus 的 demo,相应的配置了 SQL 性能分析插件。当所有代码都写好,访问控制器的时候,发现每发送一个请求,控制台都会输出两次同样的 SQL 分析日志。 没有配置任何拦截器,于是换了个浏览器访问,并没有出现这个问题,上网查了一下才知道是 Chrome 的 JSONView 插件搞的鬼。 只要更改一下 JSONView ...
jsp页面每隔3秒刷新一次
1.新建一个Dynamic Web Project项目,里面新建一个jsp文件,整体的框架如下所示: 2.one.jsp里面的代码如下所示: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> example 该页面每隔3秒刷新一次
Controller方法莫名其妙的执行两次
    最近在做项目时,同事遇到ajax调用一个Controller方法后,该方法在不返回前台的情况下执行两次,导致数据保存了两遍。简略代码如下:js代码如下:$.ajax({ cache :false, type: &quot;POST&quot;, url: &quot;${ctx}/3typePerson/newUserSave&quot;, dataType: &quot;JSON&quot;, data: $(&quot;#editForm&quot;)...
MJRefresh只刷新一次问题
今日项目中用到MJRefresh这个第三方 的刷新库,但是遇到一个比较尴尬的问题就是,只能刷新一次,经过多方查询,终于知道原因现将代码贴出共同学习进步     我用的是block方法 __weak typeof(self) weakSelf = self; self.tableView.mj_footer = [MJRefreshAutoNormalFooter footerWith
由一个“两次请求”引出的Web服务器跨域请求访问问题的解决方案
我们公司的项目都是前后端分离的,上线几个月以来,发现一个很奇怪的问题,每次前端发起请求,通过浏览器的开发者工具都能看到在Network下同一个url有两条请求,第一条请求的Method为OPTIONS,第二条请求的Method才是真正的GET或者POST,并且,第一条请求无数据返回,第二条请求才会返回正常的数据。 发现这个问题之后,立即组织搜索问题产生的原因以及解决方案。在网上搜索了大量资料,得
JavaWeb-Filter过滤器init初始化方法执行两次的解决方法
今天刚学filter,就遇到一个问题,执行时总是初始化两次,可是看web.xml是只配置了一个过滤器啊 查了半天,远原来是因为自动添加了注解,所以创建两次 把这一行删掉就好 ...
关于ViewPager与Fragment配合使用时,FragmentPagerAdapter中getItem方法第二次不执行问题
ViewPager与Fragment配合使用可以实现滑屏的效果,如下图所示 :                                     图一                                                    图二     我们有时会不满足于现状,会做一些改变,于是当我们需要改变ViewPager中Fragment的个数或内容里我们
关于浏览器请求PHP一次请求执行了两次
测试同学今天又双叒反馈了一个Bug 继上次解决了重复请求的问题之后,本来就以为可以万事大吉了,没想到我还是太年轻了,测试同学说,不行啊,老哥,你这个我点击了一次创建居然创建出来两条数据!!并且查看日志的时候,确实是发了两次网络请求!!! 我:????? 排查 1.先看看是不是JS的问题,我们看一下network跟踪一下,没有啊,这只发送了一个请求,挠头,继续, 2.好的,我去我的工位上复...
shiro的权限验证方法doGetAuthorizationInfo执行了两次
每次调用接口时,doGetAuthorizationInfo执行了两次。 // 权限配置(注解方式) /** * 下面的代码是添加注解支持 */ // @Bean // @DependsOn(&quot;lifecycleBeanPostProcessor&quot;) // public DefaultAdvisorAutoProxyCreator ...
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 微信2次开发教程 学习产品经理的方法