博友们,你们好。
今遇到如下问题。
1.目前正在开发一个竞赛项目,需要用到“倒计时”功能,就是显示本次比赛还有多久结束。竞赛开始时间和竞赛时长以及结束时间等值是保存到数据库表中的。以前的处理方式如下:
(1).定时(如10秒)去读取数据库表中的值,然后在页面显示。读取后保存这个值(开始时间、结束时间、时长等值)是用 “静态变量”或“Session”保存的,而在这10秒间(这10秒内,未实时读取数据库表中值,就采用的js来“模拟”显示)。目前遇到的问题是,用“静态变量”或“Session”保存时,针对某场比赛,倒计时显示完全没问题。但是如果用同一浏览器打开多个不同的场次比赛(不同场次比赛的时间不同),刚开始可以分别显示,但是当10秒后同步时或者刷新一个网页,这打开的所有不同场次比赛的时间都“相同”了,我想这是由于 保存时采用 的是“静态变量”或“Session” 造成的。我想请问的是如果不用这两种保存方式,那么采用什么来保存呢?
2.另外,我想请问如果采用 Ajax局部刷新效率如何?每秒都去刷新一次(每秒都刷新,那么倒计时就能正常显示了),但这样1000个客户端都在线的话,这样服务器怕承受不了吧?
谢谢博友们的热情回答!
提供一个思路,时间统一以服务器时间为准,从服务器端取到现在的时间和比赛开始结束的时间后就可以计算出还有多长时间结束,用JS在页面上进行倒记时显示,然后10秒左右去服务器获取一下时间,进行同步校正。这样就不必要用session了
朋友你好,非常感谢你的热情回答。这个问题原因估计我已经找到了,先说明两个概念
1.多窗体:多窗体这里我定义为即同一个浏览器打开多个选项卡,但是虽然打开了多个页面,但是这几个页面都是共用的这个浏览器进程吧(只有一个进程,Session被共享,所以出现不同竞赛同步时,时间本来不同的,最后也相同了。这里我不知道我组织对没有)。X,本来打算贴张图以便于观察的,结果这个编辑器太out了,上传张照片还只能传地址~~。
2.多窗口:多窗口我定义为即可以是同一个浏览器,但必须是分别打开多个。也可以是不同浏览器。他们都是独立的进程。(即有多个浏览器进程,这里面Session不共享)
就是关于浏览器的“多窗体”和“多窗口”问题。而我出现的那个情况是在“多窗体”下出现的,在“多窗口”中,不同比赛的时间会不同。目前还是采用的Session来存储。静态变量存储会有问题。
但是如果用同一浏览器打开多个不同的场次比赛(不同场次比赛的时间不同),刚开始可以分别显示,但是当10秒后同步时或者刷新一个网页,这打开的所有不同场次比赛的时间都“相同”了.
这很明显你key搞错了,为什么只保存一场比赛?每场比赛一个值不就行了??或者用列表(数组,字典)保存多场比赛的值..
朋友你好,非常感谢你的热情回答。这个问题原因估计我已经找到了,先说明两个概念
1.多窗体:多窗体这里我定义为即同一个浏览器打开多个选项卡,但是虽然打开了多个页面,但是这几个页面都是共用的这个浏览器进程吧(只有一个进程,Session被共享,所以出现不同竞赛同步时,时间本来不同的,最后也相同了。这里我不知道我组织对没有)。X,本来打算贴张图以便于观察的,结果这个编辑器太out了,上传张照片还只能传地址~~。
2.多窗口:多窗口我定义为即可以是同一个浏览器,但必须是分别打开多个。也可以是不同浏览器。他们都是独立的进程。(即有多个浏览器进程,这里面Session不共享)
就是关于浏览器的“多窗体”和“多窗口”问题。而我出现的那个情况是在“多窗体”下出现的,在“多窗口”中,不同比赛的时间会不同。目前还是采用的Session来存储。静态变量存储会有问题。
在数据库里面,见一个比赛表,比赛表里有(开始时间、结束时间、时长等)字段,不就可以了吗?不需要用静态变量和session. 你的思路要转一下。
朋友你好,非常感谢你的热情回答。这个问题原因估计我已经找到了,先说明两个概念
1.多窗体:多窗体这里我定义为即同一个浏览器打开多个选项卡,但是虽然打开了多个页面,但是这几个页面都是共用的这个浏览器进程吧(只有一个进程,Session被共享,所以出现不同竞赛同步时,时间本来不同的,最后也相同了。这里我不知道我组织对没有)。X,本来打算贴张图以便于观察的,结果这个编辑器太out了,上传张照片还只能传地址~~。
2.多窗口:多窗口我定义为即可以是同一个浏览器,但必须是分别打开多个。也可以是不同浏览器。他们都是独立的进程。(即有多个浏览器进程,这里面Session不共享)
就是关于浏览器的“多窗体”和“多窗口”问题。而我出现的那个情况是在“多窗体”下出现的,在“多窗口”中,不同比赛的时间会不同。目前还是采用的Session来存储。静态变量存储会有问题。