<br> var timestamp = 0; <br> var url = 'view1.php'; <br> var error = false; <br> function connect(){ <br> $.ajax({ <br> data : {'timestamp' : timestamp}, <br> url : url, <br> type : 'get', <br> timeout : 0, <br> success : function(response){ <br> var data = eval('('+response+')');<br> error = false; <br> timestamp = data.timestamp; <br> $("#content").append('<div>' + data.msg + '</div>'); <br> }, </p> <pre><code> complete : function(){ if (error) // if a connection problem occurs, try to reconnect each 5 seconds setTimeout(function(){connect();}, 5000); else connect(); } }) </code></pre> <p>data : {'timestamp' : timestamp}, 这个参数一直在作用,,如果不变,则firebug看控制器在等待,,如果变了就刷新一次,,但是这个值为什么只有10位数以上的大的数值才会等待呢,,程序中取得是文件的修改时间。我试着改成定值999999999999等数,,也会等待,,但换成1111等等小数,,就会不停的刷新了,,极度费解。。。</p>
6、只是请求返回成功,就马上调用connect();也不合理,这样CPU都不用休息,而且都被它用了,应该合理设置一个等待时间之后再调用
http://www.ttkoo.com/a/houtai/php/2010/1109/904.html
希望能够帮助你
[url]http://www.ttkoo.com/a/houtai/php/2010/1109/904.html[/url]
希望能够帮助你
1、首先,我觉得你代码本身写得有点问题,error永远为false,那么每次请求完成必定会马上执行connect(),那程序会无限的执行下去,那页面就要挂了
2、如果你每次请求是要实时的查询,那么cache要设置为false
3、如果不变,则firebug看控制器在等待,这个应该就是cache默认为true的原因
4、“只有10位数以上的大的数值才会等待呢,,程序中取得是文件的修改时间”
呵,这句不太理解
5、这句
setTimeout(function(){connect();}, 5000);
不用这么写,可以用下面的方式代替:
setTimeout(connect, 5000);
或
setTimeout("connect()", 5000);
建议:调试关键