2012-12-10 50 views
0

我的要求是在任何問題時,在瀏覽器端,只要用戶有瀏覽器頁面打開執行後端腳本並殺死用戶會話的後端腳本 - 比如用戶點擊關閉瀏覽器頁面/瀏覽器崩潰等等,以及其他我們可以想到或可能的想法。定期執行

我的要求是,以用戶的需求和使用的詳細信息更新用戶頁面啓動一個後臺腳本。同時,由於任何原因我們需要在用戶存在時停止腳本。我明白在頁面上有按鈕來啓動/停止會有幫助 - 但是如果用戶關閉了頁面 - 我的後端腳本將無限運行。

請諮詢哪種方式,我可以實現相同的。

+1

我不知道你的目標是什麼,但我敢打賭好錢就是_not_實現這一目標的最佳途徑。你想做什麼? –

+0

服務器應該如何知道該頁面已關閉?您需要在頁面關閉時處理斷開連接。 –

+0

幾種方式,包括ajax pulls,websockets,close events –

回答

0

這是很容易與長輪詢技術來實現。您可以使用:

setInterval(function(){ 
    /*some code to execute ajax request to backend*/ 
}, timeIntervalInMS); 

或者更好的爲長輪詢的插件搜索谷歌在JavaScript中,你是好去。

通過這種技術的瀏覽器會用戶有它的瀏覽器中打開,只要發出每一個時間間隔到後端的請求以毫秒爲單位。

+0

那麼實際上,然後在第一個請求我會開始捕捉/渲染應用程序日誌到用戶的用戶界面頁面。現在我需要繼續這樣做直到用戶丟棄頁面爲止 - 我要求一個萬無一失的機制的原因是爲了避免後端腳本無限期地運行,即使沒有用戶向其提交數據。 – Prakash

+0

然後我不明白這個問題,因爲我告訴它只要客戶端打開頁面就會執行。你只需要在後端清理用戶會話。 –

+0

@Butkus - 感謝您的發佈。我們有後端服務器生成日誌,我需要在他/她的瀏覽器中呈現給UI用戶網頁。因此,當用戶啓動它時,我會啓動一個無限循環來捕獲/呈現服務器添加的所有應用程序日誌(類似於保持添加到日誌中的數據)。問題是我的後端服務器如何知道何時停止執行腳本 - 一種逃避無限期運行而無目標運行的簡單方法,如孤兒子進程。 – Prakash