我有一個網頁,每隔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