首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 初学AJAX,有个关于倒记时的问题很闹心! [无满意答案结贴,结贴人:yzoneyzone]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于: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  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-05 10:06:471楼 得分:0
    up
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-05 11:31:222楼 得分:0
    jf
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-05 11:51:593楼 得分:0
    问题太长,看得头痛。
    逻辑有点混乱,
    也没有考虑清楚服务器时间与客户机器上的时间的差,
    例如这一句,“事件1首先获取当前时间,在当前时间上加上指定的秒数”当前时间是指服务器当前时间,还是指浏览器当前时间?
    “想在事件1被触发的时候赋值给nowtime标签” 这里的nowTime是指服务器当前时间,还是指浏览器当前时间?

    另外,“页面加载的时候我给存取当前时间的div id="nowtime"赋了个值”
    这个值只是用于显示,不会影响代码功能啊


    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-05 12:45:404楼 得分:0
    to JK_10000

    上面的时间全部是指服务器时间。
    id="nowtime"里的值要参与倒记时,setTimeout为每隔1秒从nowtime里获取一次最新时间,这些功能都实现了,就只有第一次点击按钮的时候不知道如何给nowtime赋最新的时间值。
    因为如果点击按钮后再赋值,程序取到nowtime里的值为空。为了防止它为空,我的做法是在页面加载的时候就给nowtime赋值,但是这样的话,获取的时间就不是点击按钮那一刻的时间了,而是加载页面那一刻的时间。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-05 12:48:465楼 得分:0
    有个测试地址是:http://sale.19play.net/
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-05 13:10:496楼 得分:0
    我的QQ是119105123,大家可以加我QQ聊吗!这样效果好些
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    世纪乐知(北京)网络技术有限公司 版权所有 京 ICP 证 020026 号
    Copyright © 2000-2007, CSDN.NET, All Rights Reserved