2009-01-01 61 views
0

我目前有一個自定義會話處理程序類,它只是建立在php的會話功能(以及一些mySQL表中的關係)上。將一些自定義會話變量添加到JavaScript對象

我有各種各樣的會話變量最適合我的應用程序(主要是保存在服務器端)。雖然我也在使用jQuery來提高前端的可用性,但我想知道是否將一些會話變量(一些基礎知識和一些瀏覽偏好ID)提供給JS對象會是一個不好的方法。

目前,如果我需要在前端訪問任何這些信息,我做了一個ajax請求到一個專門爲提供適當響應的php頁面,但我不確定這是否是最佳實踐(實際上我是'很確定這只是創建了過多的Ajax請求)。

有沒有人對此有任何意見?這是將這種信息提供給客戶端的最佳方式嗎?

回答

0

我真的認爲這取決於很多因素。我總是在腦海後面「過早優化......」。

早些年我趕到那,我便想起到應用程序的每一點想法。這往往會導致「我變得很酷,但我沒有花時間去完全掌握我正在努力解決的問題;反正有問題嗎?」

現在我使用明顯的方法(像你這樣),這是快(沒有在第一次嘗試完全翻挖的性能),然後分析如果我進入的問題或不來的。

換句話說:

  1. 你多久需要從不同種類的加載頁面訪問此信息(因爲如果沒有用戶重新加載一次加載信息有可能不是在重新多少點無論如何取得它)乘以併發客戶端的數量?

  2. 如果將信息寫入到客戶端的cookie快速JS訪問,可能會損害被濫用,如果(修改無需申請許可)做你的應用程序?如果#1適用,請替換「JS」和「Cookie」,而不要使用WHATWG提出的任何類型的離線存儲。

「快速」的方法適合我,因爲往往沒有大的投入到事先開發研究。如果你仔細地做到這一點......但你可能會知道答案了;)

爲3。你可以在HTML總是推送到你的客戶已經包括您在JS所需要的數據,也許這可以工作在你的情況。看看還有什麼其他的建議會很有趣!

正如我注意到的那樣:我已經將PHP會話存儲在數據庫中,直到我將它們移到memcached中(警告:它是緩存而不是持久存儲,因此對您來說可能不是一個好主意,可以忍受它,我只是確保它一直在運行)實現數據庫查詢的平均下降20%,並通過這個90%的寫查詢下降。而我甚至沒有使用任何花哨的Ajax,只有併發用戶的數量。

+0

非常感謝,我已經將一些想法放在了前面的開發中,但由於應用程序主要用於我的使用,所以我陷入了進化。 :) – Asciant 2009-01-01 23:59:26

0

我會說這是肯定AJAX的矯枉過正,是這些會議的私人或重要的是不要表現出對訪客?只是把它扔在那裏;一個cookie最簡單的方法就是使用javascript對象中的數據使訪問者可以輕鬆讀取數據,當涉及到cookies的啓用與否時,如果沒有cookie,則無論如何都不會有會話。

http://www.quirksmode.org/js/cookies.html是一個很好的關於JS中cookie處理的源碼,包含兩個讀寫cookies的函數。

+0

這些會話保護了一個用於編輯站點數據的管理區域,該信息本身對與其相關的用戶不太敏感。 75%是用戶數據,25%是系統索引等。 謝謝你的信息:) – Asciant 2009-01-01 23:56:06

相關問題