弱弱的问一句,asp.net 项目中使用Ajax局部刷新问题。

博友们,你们好。

    今遇到如下问题。

1.目前正在开发一个竞赛项目,需要用到“倒计时”功能,就是显示本次比赛还有多久结束。竞赛开始时间和竞赛时长以及结束时间等值是保存到数据库表中的。以前的处理方式如下:

   (1).定时(如10秒)去读取数据库表中的值,然后在页面显示。读取后保存这个值(开始时间、结束时间、时长等值)是用 “静态变量”或“Session”保存的,而在这10秒间(这10秒内,未实时读取数据库表中值,就采用的js来“模拟”显示)。目前遇到的问题是,用“静态变量”或“Session”保存时,针对某场比赛,倒计时显示完全没问题。但是如果用同一浏览器打开多个不同的场次比赛(不同场次比赛的时间不同),刚开始可以分别显示,但是当10秒后同步时或者刷新一个网页,这打开的所有不同场次比赛的时间都“相同”了,我想这是由于 保存时采用 的是“静态变量”或“Session” 造成的。我想请问的是如果不用这两种保存方式,那么采用什么来保存呢?

2.另外,我想请问如果采用 Ajax局部刷新效率如何?每秒都去刷新一次(每秒都刷新,那么倒计时就能正常显示了),但这样1000个客户端都在线的话,这样服务器怕承受不了吧?

谢谢博友们的热情回答!

呼如林
浏览 320回答 5
5回答

慕的地6264312

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

三国纷争

但是如果用同一浏览器打开多个不同的场次比赛(不同场次比赛的时间不同),刚开始可以分别显示,但是当10秒后同步时或者刷新一个网页,这打开的所有不同场次比赛的时间都“相同”了. 这很明显你key搞错了,为什么只保存一场比赛?每场比赛一个值不就行了??或者用列表(数组,字典)保存多场比赛的值..    

Qyouu

在数据库里面,见一个比赛表,比赛表里有(开始时间、结束时间、时长等)字段,不就可以了吗?不需要用静态变量和session. 你的思路要转一下。
打开App,查看更多内容
随时随地看视频慕课网APP