我的程序,大量使用了settimeout ,造成VPS的CPU占用率极大,导致网页不能用!!
帮帮忙,什么方法能达到settimeout的功能还不占用CPU呢??!!

解决方案 »

  1.   

    setTimeout 是浏览器端的JS的东西.. 不会耗用服务器资源的.
    你弄错了.唯一值得注意的是 setTimeout 动作中如果调用了服务器接口. 那就要优化服务器这个接口的耗用了.
      

  2.   

    我要用settimeout想服务段请求数据来更新页面!所以服务端CPU就高,
      

  3.   

    能不能用asp.net ajax写一个websever,通过服务端来对客服端进行实时刷新?有没有例子呢?
      

  4.   

    "我要用settimeout想服务段请求数据来更新页面!"这个似乎太什么什么了....
    最好用别的方案..
      

  5.   


    一般来说,使用asp来做聊天程序只能通过定时刷新服务端的方法来与其他用户交互,能不能象socket一样让客户端与服务器保持长连接,由服务端向浏览器推数据呢?下面的代码使用xmlhttp对象的同步获取方法作为进程暂停的手段,然后用无限循环来保持长连接。使用时把该页放入iframe中,根据情况向客户端吐js语句就行了。经过测试,该方法对服务端的cpu占用率影响很小,具有实用价值。<%@language=javascript%><%
    Server.ScriptTimeOut=99999
    var xh,dv
    xh=Server.createObject("Microsoft.XMLHTTP")
    while(1){
      Response.write((new Date())+"<br>")
      Response.flush()
      dv=new Date().valueOf()
      while(new Date().valueOf()-dv<1000){
        xh.open("GET","http://www.google.com/",false)
        xh.send()
      }
      if(!Response.IsClientConnected){
        Session.abandon()
        break
      }
    }
    %>
    这段代码是实现ASP长连接的,没看明白 那位大侠解释下
      

  6.   

    setTimeout("",1000);
    你把时间设置长一点。应该会好一些吧。
      

  7.   

    setTimeout("",1000);
    这样不行<%@language=javascript%><%
    Server.ScriptTimeOut=99999
    var xh,dv
    xh=Server.createObject("Microsoft.XMLHTTP")
    while(1){
      Response.write((new Date())+"<br>")
      Response.flush()
      dv=new Date().valueOf()
      while(new Date().valueOf()-dv<1000){
        xh.open("GET","http://www.google.com/",false)
        xh.send()
      }
      if(!Response.IsClientConnected){
        Session.abandon()
        break
      }
    }
    %>谁解释下