-

- 加为好友
- 发送私信
- 在线聊天
|
| 发表于:2008-05-05 09:30:20 楼主 |
初学AJAX,做了个实例。在该实例中遇到一个有点棘手的问题,想请各位同行帮忙指导下。 功能的需求是这样的:由页面一个按钮作为触发开关,在当前页面实现倒记时效果。要考虑到倒记时过程中关闭页面,再打开页面倒记时继续。 我对需求的分析设计是:开发语言(asp.net+ajax+mssql)页面制作一个按钮,点击触发事件1,事件1首先获取当前时间,在当前时间上加上指定的秒数(在这里我加的是10秒,最后效果就是十秒倒记时)。然后tostring为(month day,year time)格式以nchar字段类型存入etime字段。数据库中有一个wc字段(bit类型),如果该时间小于当前系统时间则为1,也就是过期,反之为0。接着下一步,自动执行事件2,从数据库中获取刚插入的新数据时间命名为endtime;然后执行事件3,用C#获取当前服务器时间转换为(month day,year time)格式命名为starttime;接着执行事件4,endtime毫秒数-starttime毫秒数,如果结果>0就执行计算,计算出还剩下多少秒并显示在前台div标签中,重复执行事件3,获取当前时间的秒数,最后用setTimeout("这个函数名",1000);如果结果 <=0就将结果div的innerHTML设置为结束文字. 这些过程我都实现了,但发现按钮必须按两次才能执行倒记时,我找到了问题,问题在于,页面加载的时候我给存取当前时间的div id="nowtime"赋了个值,但是执行事件4的时候nowtime中的值却与当前值相差有几秒.然后我修改了代码,就是不在页面加载的时候赋值,想在事件1被触发的时候赋值给nowtime标签,这时候如果我在点击按钮的时候赋值的话,取得的nowtime中的值就为空,程序无法运行,必须再点一下赋值给nowtime才能进行下一步。我想知道如何才能让我任何一次点击该倒记时程序都可以立即执行,而不需要点两下。 |
|
|
|
20
修改
删除
举报
引用
回复
| |