2011-12-13 59 views
5

我最近完成了我的應用程序,並且遇到了很大的問題。我需要一次只允許一個用戶訪問它。每個用戶每次都可以訪問索引頁,並可以「​​開始」按鈕。當用戶單擊開始時,應用程序鎖定和其他人需要等待,直到用戶完成。當用戶關閉標籤頁/瀏覽器時,應用程序必須自動解鎖。每個用戶有5分鐘使用我的應用程序。 我部分解決了我的問題,但它仍然無法正常工作 - 在每個站點上,我設置jQuery腳本,每5秒觸發服務器上的「extend.php」文件($ .get()函數)。 php文件修改time.txt文件(將其改變爲time()+ 5),而intex站點上的腳本檢查是否(time()> time.txt內容)。因此,當用戶關閉標籤頁/瀏覽器時,該應用程序是可訪問的。很明顯,我的應用程序也基於會話(當用戶關閉瀏覽器時,他失去了訪問權限)。 在某些計算機上,它根本無法工作(看起來jquery不會觸發extend.php文件,它使我的應用程序始終可用)。 所以我的問題是:你有沒有看到其他方法來解決我的問題?檢查用戶當前是否在線(實時)

的DESCR可能是混亂的,但我想strightforward說明一切;)

問候。

+1

什麼操作系統/瀏覽器不工作。從那裏開始,看看有問題的人之間是否有共同點。您可能正在追逐一個真正是瀏覽器問題的代碼問題。 – Brian

+0

你原則上是通過它的聲音做正確的事情。首先要做的就是找到一臺不工作的機器,看看它是否拋出任何可見的瀏覽器錯誤。 – graphicdivine

回答

0

當用戶在線時,您可以將LOCK放在mysql表上,並在脫機狀態時將其解鎖。

唯一的問題是如果你的代碼忘記解鎖。

+0

我認爲這是他想解決的問題... –

1

你的方法沒問題,應該可以工作。是的,node.js或任何其他服務器端的JavaScript可以用來做同樣的事情,但觸發腳本是迄今爲止最簡單的解決方案。你真的應該集中精力,進一步調查哪些機器無法正常工作。

2

嘗試使用jQuery卸載功能,以便當他們單擊關閉按鈕時,您的Web瀏覽器在用戶退出前執行最後一行腳本。例如:

$(window).unload(function(){ 

    "your php function to unlock the app here" 

}); 

希望這會有所幫助。

1

如果限制爲5分鐘,則將其設置爲5分鐘後過期。你可以在jquery中使用一個計數器來顯示有多少時間可用。當它到期時,通知用戶時間到了。一旦時間到期或用戶完成應用程序更新time.txt到time(),或者通常在應用程序可訪問時處理它。沒有輪詢和1次更新。