以前都是開始一段廢話的,現(xiàn)在直接進入主題,首先介紹一下一些概念:
單頁應用:
優(yōu)點:
- 具有桌面應用的即時性、網(wǎng)站的可移植性和可訪問性。
- 用戶體驗好、快,內(nèi)容的改變不需要重新加載整個頁面,web應用更具響應性和更令人著迷。
- 基于上面一點,SPA相對對服務器壓力小。
- 良好的前后端分離。SPA和RESTful架構(gòu)一起使用,后端不再負責模板渲染、輸出頁面工作,web前端和各種移動終端地位對等,后端API通用化。
- 對前端人員javascript技能要求更高,促使團隊技能提升。
- 不利于SEO。
- 初次加載耗時相對增多。
- 導航不可用,如果一定要導航需要自行實現(xiàn)前進、后退。
- 對開發(fā)人員技能水平、開發(fā)成本高。
多角色:項目設(shè)計中多角色參與,比如我現(xiàn)在做的系統(tǒng),除了有個人用戶,還有開店的商戶進行登錄2種角色
session:這個不多說,后臺系統(tǒng)判斷用戶活躍存在的一種身份憑證。PS:現(xiàn)在很多大型公司都自己做session管理
問題再現(xiàn):
- 在一個瀏覽器中,首先使用個人用戶登錄(現(xiàn)在該瀏覽器針對該站點發(fā)送的請求為個人用戶的session)
- 然后在瀏覽器中新開一個標簽頁,同樣訪問該網(wǎng)址,然后安全退出,清除cookie保存的一些信息和服務器的session數(shù)據(jù)。然后使用商戶賬號進行登錄(現(xiàn)在整個瀏覽器針對于該域名,發(fā)送的請求都使用該商戶的session)
- 現(xiàn)在切換到第一個標簽頁,是個人的首頁,然后點一個功能按鈕,監(jiān)控xhr的請求,你會發(fā)現(xiàn)個人用戶請求的session憑據(jù)并不是個人的,而是占用了商戶的session去發(fā)送請求
-
這樣得到的結(jié)果肯定是錯的。所以必須解決該問題
測試淘寶: