2012-04-09 87 views
-1

我目前正在研究一個嚴重依賴JavaScript並且使用node.js作爲後端的聊天。我希望儘可能在JavaScript中進行操作(如果可能的話,甚至可能根本沒有PHP)。我遇到的其中一個問題是如何保持網站的狀態。當用戶點擊聯繫人時,通信內容將從服務器獲取。使用JavaScript處理網站的狀態

你會建議如何保存當前顯示的聯繫人的ID。錨?變量?曲奇餅?

回答

1

Cookie用於您網站的相對長期使用,特別是當您想保留一些客戶端數據(這些數據是針對手頭用戶量身定製的(並且不會危害您的系統))。所以,當他(或她)重新訪問你的網站時,就會像他們離開它一樣 - 沒有你在數據庫中存儲不必要的每用戶數據。因此,從定義,這是一個不適用於Cookie。

您的問題,更多的是一種即時使用性質的 - 你與當前顯示的聯繫人的ID工作,這也許是最適合的變量(從提供的),或者甚至是DOM - 爲jfriend00指出。

而且,作爲一般性建議,確實需要考慮標準安全影響和代碼。

快樂編碼!

0

如果您在頁面的持續時間內只需要這個狀態,那麼就沒有理由使用cookie。加上cookie在大小和數量上都有所限制。

因此,無論您是要將數據保存在JavaScript變量中,還是隻將其放入DOM中,並在需要時直接在DOM中訪問它,都取決於您。我傾向於在JavaScript變量中保留高層次的東西以使其能夠快速執行未來的任務,但是如果數據在DOM中,則無法通過存儲在DOM和JS變量中來複制大量數據。

但是,最後,它取決於它是什麼類型的數據,已經存儲在DOM中的內容,未來訪問您需要的數據的類型以及您正在採取的操作。我們需要更多地瞭解您正在做什麼的細節,以便爲您的具體情況提供更具體的建議。

0

在這3個選項之間,我建議將存儲在變量中。這裏的原因:

  • Cookies是不普通的JavaScript方便,至少在沒有加入一些自定義功能
  • 搭售數據視圖(即id<a>錨標記),而共同的,打破了乾淨的編碼慣例。它讓你頭痛,因爲我通過經驗學到了東西。

使用變量或其他持久數據存儲(即localStorage)是更好的方式來存儲您的數據。如果您正在尋找一種在JavaScript應用程序中組織數據和視圖的好方法,請查看Backbone.js框架。