为了账号安全,请及时绑定邮箱和手机立即绑定

asp.net 项目中使用Ajax局部刷新问题。

asp.net 项目中使用Ajax局部刷新问题。

SMILET 2018-08-03 07:07:58
今遇到如下问题。1.目前正在开发一个竞赛项目,需要用到“倒计时”功能,就是显示本次比赛还有多久结束。竞赛开始时间和竞赛时长以及结束时间等值是保存到数据库表中的。以前的处理方式如下:   (1).定时(如10秒)去读取数据库表中的值,然后在页面显示。读取后保存这个值(开始时间、结束时间、时长等值)是用 “静态变量”或“Session”保存的,而在这10秒间(这10秒内,未实时读取数据库表中值,就采用的js来“模拟”显示)。目前遇到的问题是,用“静态变量”或“Session”保存时,针对某场比赛,倒计时显示完全没问题。但是如果用同一浏览器打开多个不同的场次比赛(不同场次比赛的时间不同),刚开始可以分别显示,但是当10秒后同步时或者刷新一个网页,这打开的所有不同场次比赛的时间都“相同”了,我想这是由于 保存时采用 的是“静态变量”或“Session” 造成的。我想请问的是如果不用这两种保存方式,那么采用什么来保存呢?2.另外,我想请问如果采用 Ajax局部刷新效率如何?每秒都去刷新一次(每秒都刷新,那么倒计时就能正常显示了),但这样1000个客户端都在线的话,这样服务器怕承受不了吧?
查看完整描述

2 回答

?
哈士奇WWW

TA贡献1799条经验 获得超6个赞

提供一个思路,时间统一以服务器时间为准,从服务器端取到现在的时间和比赛开始结束的时间后就可以计算出还有多长时间结束,用JS在页面上进行倒记时显示,然后10秒左右去服务器获取一下时间,进行同步校正。这样就不必要用session了

查看完整回答
反对 回复 2018-08-06
?
智慧大石

TA贡献1946条经验 获得超3个赞

但是如果用同一浏览器打开多个不同的场次比赛(不同场次比赛的时间不同),刚开始可以分别显示,但是当10秒后同步时或者刷新一个网页,这打开的所有不同场次比赛的时间都“相同”了.

这很明显你key搞错了,为什么只保存一场比赛?每场比赛一个值不就行了??或者用列表(数组,字典)保存多场比赛的值..


查看完整回答
反对 回复 2018-08-06
  • 2 回答
  • 0 关注
  • 661 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信