我有一个网页,每隔1秒后通过jQuery json数据从webservice请求。如果没有数据,则webservice返回null。长查询webservice
问题是,如果客户端在现场超过24小时,那么浏览器将收集太多的数据并将崩溃。所以我决定暂停在jQuery的阿贾克斯设置为60000,因此会等待数据和服务器端我试图以财产以后这样的:
while(true)
{
if(thereIsData){
System.Web.Script.Serialization.JavaScriptSerializer oSerializer =
new System.Web.Script.Serialization.JavaScriptSerializer();
string sJSON = oSerializer.Serialize(ActionList);
Context.Response.Output.Write(sJSON);
return;
}
Thread.Sleep(1000);
}
但是,如果使用了Thread.Sleep那么它会锁定整个页面。我已经尝试了线程化的EventWaitHandle,同样的结果整个页面都被锁定,直到有数据。我也尝试创建其他web服务,但结果相同。有什么办法可以做到这一点?
对不起回答,然后unanswering。最初以为这是一个jQuery的问题。我不认为你会暂停你的应用程序的第二个服务器端没有它锁定浏览器,但我将会让更多合格的专家来回答这个问题。可能有一个解决方法啊。 – clifgriffin 2010-09-28 12:58:46
“浏览器会收集太多数据”是什么意思?看来,如果WS在大多数情况下返回null,这不会是一个问题。这似乎是我,你需要在客户端处理这个问题,如果它太大,清理一些数据。 – mikeymo 2010-09-28 13:11:22
如果我返回null,那么还有其他数据像头一样发送。我怎样才能清除JavaScript浏览器的缓存? – Woland 2010-09-28 13:42:45