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