2010-01-10 27 views
0

我正在構建的當前應用程序是一個協作應用程序,可以在可以訪問一組項目的「團隊」或公司中擁有多個用戶。每個項目都有自己的文檔。策略:當用戶離開頁面時解鎖文檔

我想保護團隊用戶不會碰到彼此,所以我建立了一個系統,第一個用戶鎖定文檔以訪問它們。當以下任何發生的文檔,然後解鎖:

  • 用戶關閉文件
  • 用戶登錄並摧毀他/她的會話
  • 用戶留下沒有註銷,但該會話的垃圾收集解鎖文件

這一切運作良好,但有一點是留給修復...

我需要當用戶離開一個項目,而不解鎖知道文檔(基本上只是離開頁面),因爲他可以走進另一個項目並編輯另一個文檔。

我到目前爲止唯一的選擇是通過捕獲我的基本控制器類(CodeIgniter MVC)中的http referrer並對url進行搜索以查看它是否與項目匹配...然後解鎖文檔。

雖然http referrer變量不可預測,但這不是一個強有力的選項。

你會怎麼做? (兩個窗口中的同一文檔中的同一用戶是可以忽略的問題)

回答

1

解決方法之一是使用Javascript事件window.onUnload向服務器發回頁面正在離開的信號。最好在當前頁面上使用AJAX進行通信,因爲現在大多數瀏覽器都會阻止彈出窗口。

+0

我會研究它。 – Christoffer 2010-01-10 16:12:12

1

保留對當前正在會話中編輯的文檔的引用,然後打開文檔時檢查並查看如果不同?如果是這樣,解鎖前一個?

+0

是的,但我希望用戶能夠一次編輯兩個項目,也許檢查一箇舊的參考等 – Christoffer 2010-01-10 10:41:00

相關問題