2 o ohaha O_ohaha 于 2014.07.15 16:52 提问

js赋值问题,在线刷新急!!

如果将clock.innerHTML=_time;移到注释 //①下面的话,那么_time将没有值,求教

    <html><head>
    <style type="text/css">

.clock
{
    padding :10px;

    color:white;
    text-align:center;
    height:12%;
    width:25%;
    margin-left:35%;
    margin-right:35%;
    border:solid 10px black;
    background:gray;

}
</style>
<meta http-equiv="content-type" content="text/html; charset=GBK" />
<script type="text/javascript" >

function disp()
{
var xmlhttp;
var _time="sss";
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }

xmlhttp.onreadystatechange=function()
  {
   if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
        _time=xmlhttp.responseText;
        clock.innerHTML=_time;
    }
  } 

xmlhttp.open("POST","MyJsp.jsp?t="+Math.random(),true);
xmlhttp.send();
 //①

}
</script>

</head>
<body >
<div id="clock"  class="clock" > </div>
 <script type="text/javascript">
    setInterval("disp()",1000);
 </script>
</body>
</html>

2个回答

qwuack
qwuack   2014.07.16 09:32

_time在请求后xmlhttp.responseText返回的是空值吗?
断点检查下

O_ohaha
O_ohaha 今天上班后我看了一下AJAX的详细入门,下面我把我的解释贴出来,因为语言组织能力不强,所以将就看吧
接近 4 年之前 回复
O_ohaha
O_ohaha   2014.07.16 10:33

由于ajax是异步,所以在state状态还没有完全到4时,clock.InnerHTML=_time已经执行完毕,而等状态到4时_time被赋值,这个方法已经执行结束了,1S后又开始重新执行disp()方法。
要将此值显示,可以尝试用setTimeout()延迟1S执行clock.InnerHTML=_time。(该方法也显示不出,如果延迟1S,那么在这1S期间不会去执行onstateChage(),而是1S后执行clock.InnerHTML=_time,再去执行Onstatechange();唯有将AJAX设置为同步,等其将数据完全解析完毕才行)

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
在线考试系统(一)---JS倒计时cookie防刷新
年前给公司做了个在线答题系统,需要在考试页面上显示倒计时。之前有用过别的在线考试系统,有的系统刷新计时就会重新开始,这对答题者是很好,可以用来作弊,实际上却是个Bug,所以需要结合cookie,当然如果清掉cookie重新计时那我就没办法了╮( ̄▽ ̄")╭。 按照本宝宝的一贯风格,我又来粗暴的晒代码啦! $(function() { var _minute = parseIn
xml 查询问题
xml 查询问题 急xml 查询问题 急xml 查询问题 急xml 查询问题 急xml 查询问题 急xml 查询问题 急xml 查询问题 急xml 查询问题 急xml 查询问题 急xml 查询问题 急xml 查询问题 急xml 查询问题 急xml 查询问题 急xml 查询问题 急xml 查询问题 急
ueditor中 editor加载准备完成,例如:对editor赋值问题
 ue.ready(function () {            ue.setContent(data.全文, false); });
js刷新问题
js刷新的一些方法和一些出现的问题,还有就是js刷新要用到的一些语句!
FineReport中如何用JavaScript解决控件值刷新不及时的问题
我们经常利用按钮进行一些页面值的处理工作,但是默认的逻辑造成,每次新填报的值,需要点击下空白区域或是执行某个其他操作才可以被正确读取,那么我们如何处理呢?
关于引用JS和CSS刷新浏览器缓存问题
有时候我们会碰到上线的新版本都要刷新一次缓存的问题。那是因为改了JS的内容,但是JSP引用的地方后面的字符串未发生改变导致浏览器读取浏览器缓存而不会重新加载新的JS内容,以下提供两种解决方式: 1.每次上线会更新一个版本号,用版本号作为引用的字符串: 2.每次修改了一个新的js,在引用此js的地方更新日期编号: web网站css,js更新后客户浏览器缓存问题,需要刷新才能正常展示
JS网页刷新大全 JS网页刷新大全
JS 网页刷新大全 JS 网页刷新大全 JS 网页刷新大全 JS 网页刷新大全 JS 网页刷新大全 JS 网页刷新大全
Hibernate懒加载急加载我们需要注意的问题
1、显而易见的概念懒加载——也被称为延迟加载,它在查询的时候不会立刻访问数据库,而是返回代理对象,当真正去使用对象的时候才会访问数据库。急加载——就是只要我们实体做了关联,全部一次性执行完所有的SQL语句2、@OneToMany ****默认为懒加载**** @Test public void find(){ Session s= sessionFactory.
FineReport中如何用JavaScript解决控件值刷新不及时
我们经常利用按钮进行一些页面值的处理工作,但是默认的逻辑造成,每次新填报的值,需要点击下空白区域或是执行某个其他操作才可以被正确读取,那么我们如何处理呢?
无极限可刷新js树 js tree
1、可设置无限级菜单 2、不必使用框架 3、可刷新,多页面内跳转不会影响菜单(IE6下好像有点问题) 4、可限级创造子树 5、支持目前主流浏览器:IE5,6,7 6、节点图片可设置切换图片效果