setInterval("getMsg()",3000);
function getMsg()
{
ltrMsg=document.getElementById("msg");
ltrMsg.innerHtml="<%=getMessageCount()%>条消息";
}
<span id="msg">条消息</span>getMessage()是后台获取数据的函数为何function只会执行1次,困扰了好久,请高人解答!

解决方案 »

  1.   

    ltrMsg.innerHtml="<%=getMessageCount()%>条消息";ltrMsg.innerHTML="<%=getMessageCount()%>条消息";
      

  2.   

    是不是你其他地方有问题,我就这些代码测试,肯定是可以的
    <div id="msgs">xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</div>
    <script>
    setInterval("getMsg()",3000);
    var k=0;
    function getMsg()
    {
        var msg=document.getElementById("msgs");
        msg.innerHTML=k+"条消息";
        k++;
    }
    </script>
      

  3.   

    测试了下,是里面<%=getMessageCount()%>这个函数的问题,定时器确实一直在工作,⊙﹏⊙b汗
    可是函数为何取不到新值呢?网页强制刷新之后才会改变
      

  4.   

    getMessageCount()这个是你服务器端的方法呀
      

  5.   

    服务器端方法,就只会在页面载入时加载一次而已。你那个定时器再怎么取,值都不会变的客户端和服务器端你想要交互,你要使用ajax,不能这么直接用的
      

  6.   

    好麻烦啊,为啥js这么难搞???头疼。我是菜鸟,刚接触asp.net没多久,我理解的ajax就是拖个scriptManager、timer、updatePanel,再定时刷新。试过是可以,但是不知道为什么刷新的时候那三个控件会对界面产生影响,就放弃了,用上面的方法折腾半天,⊙﹏⊙b汗
      

  7.   

    纯js与服务器控件是不同的弹窗的话,很多插件可以用的
    artDialog
    就可以