2010-09-07 72 views
0

我正在玩的東西是一個Rest/HTML頁面,通過JSON調用動態更新。Rest/HTML - 如果服務器停止檢測服務器是否再次啓動?

現在,我希望這個在運行的情況下儘可能帶寬。

因此,如果服務器是關閉,然後啓動了再次我希望更新在大多數情況下,再繼續這個工作有些情況下,JavaScript的部分將無法正常工作和超時。

那麼什麼是低開銷的解決方案來檢測服務器已經重新啓動?

(尋找好的想法或其他方法來做到這一點)


想法:
到目前爲止,我認爲有一個狀態請求,但是這一次使用的帶寬持續運行?

或者如何只在服務器關閉時運行該狀態請求,並在服務器關閉時停止運行?

+0

請不要讓「服務器無法關閉」,因爲在這種情況下,可能會出現服務器出現問題的可能性。 – Sphvn 2010-09-07 06:37:12

+0

您關心的是客戶端帶寬,服務器端網絡還是兩者? – sje397 2010-09-07 06:49:24

+0

@ sje397我正在看着兩者。平心而論,這個要求是可以的,但要儘可能減少這個要求會更好。也認爲這將是有趣的看到其他POV的 – Sphvn 2010-09-07 06:51:13

回答

3

您可以使用setInterval函數持續輪詢服務器以獲取更新。一旦請求失敗,您可以通過僅發送HEAD請求(並按照@ sje397建議的方式增加超時間隔)來輸入所謂的安全模式,以減少帶寬,一旦成功,您再次進入正常模式並繼續使用GET/POST。

也有更多奇特的東西,如COMET and Web Sockets in HTML 5,允許服務器推送更新到客戶端。

+0

雖然它是一個工作解決方案,它會不斷運行在後臺使用更多的數據。對於事實setInterval的+1將不會被取消,因爲它只是在自己運行。 – Sphvn 2010-09-07 06:43:00

+2

您可能想要增加投票之間的時間,直到達到某個合理的限制。 – sje397 2010-09-07 06:44:07

+0

與Web套接字一樣好,並不是所有的東西都可以使用它們。目前我只是發送JSON字符串的「GET」請求。 – Sphvn 2010-09-07 06:45:04