以整体思维看问题:解决单页应用,系统角色请求覆盖身份唯一标识(本项目中是session_id命名的)发送请求问题...
以前都是開(kāi)始一段廢話的,現(xiàn)在直接進(jìn)入主題,首先介紹一下一些概念:
單頁(yè)應(yīng)用:
優(yōu)點(diǎn):多角色:項(xiàng)目設(shè)計(jì)中多角色參與,比如我現(xiàn)在做的系統(tǒng),除了有個(gè)人用戶,還有開(kāi)店的商戶進(jìn)行登錄2種角色
session:這個(gè)不多說(shuō),后臺(tái)系統(tǒng)判斷用戶活躍存在的一種身份憑證。PS:現(xiàn)在很多大型公司都自己做session管理
?
問(wèn)題再現(xiàn):
這樣得到的結(jié)果肯定是錯(cuò)的。所以必須解決該問(wèn)題
?
測(cè)試淘寶:
- 登錄第一個(gè)賬戶
- 新開(kāi)標(biāo)簽頁(yè)輸入相同網(wǎng)址
- 網(wǎng)頁(yè)會(huì)自動(dòng)跳轉(zhuǎn)到和標(biāo)簽也一樣的頁(yè)面
- 退出登錄新的賬號(hào),第一個(gè)標(biāo)簽頁(yè)還是在第一個(gè)人的個(gè)人中心那里
- 登錄第二個(gè)賬戶,這個(gè)時(shí)候第一個(gè)標(biāo)簽頁(yè)是第一個(gè)賬戶的個(gè)人信息,第二個(gè)標(biāo)簽頁(yè)是第二個(gè)賬戶的個(gè)人信息
- 這個(gè)時(shí)候,瀏覽器針對(duì)這個(gè)域名,其實(shí)存儲(chǔ)的已經(jīng)是第二個(gè)賬戶的所有信息了,包括session_id。所以點(diǎn)擊第一個(gè)標(biāo)簽頁(yè)的任何操作,如果不刷新頁(yè)面的話(也就是單頁(yè)應(yīng)用),會(huì)以第二個(gè)用戶的session_id去請(qǐng)求數(shù)據(jù)。但是淘寶是刷新整個(gè)頁(yè)面就不存在這個(gè)問(wèn)題了。
- 這樣整頁(yè)刷新就是第二個(gè)賬戶的所有的信息了。如果系統(tǒng)多角色,而且多角色菜單啊,和業(yè)務(wù)功能不一樣的話,就會(huì)更明顯發(fā)現(xiàn)大問(wèn)題,搶占session,無(wú)法正確請(qǐng)求數(shù)據(jù)
?
?
解決方案:
確立解決手段:經(jīng)過(guò)測(cè)試淘寶網(wǎng)站發(fā)現(xiàn),淘寶針對(duì)這種問(wèn)題,每次操作都會(huì)刷新頁(yè)面,因?yàn)樗⑿马?yè)面所有數(shù)據(jù)都將重新向后臺(tái)請(qǐng)求,所以不會(huì)存在該問(wèn)題:不刷新頁(yè)面然后通過(guò)ajax一步請(qǐng)求數(shù)據(jù)。所以解決手段就是只要刷新頁(yè)面全部重新請(qǐng)求數(shù)據(jù)就不會(huì)出現(xiàn)這個(gè)問(wèn)題。
關(guān)鍵問(wèn)題:怎么去讓瀏覽 器每次去鑒別是否為一個(gè)用戶,然后讓瀏覽器主動(dòng)去刷新頁(yè)面
解決步驟:
?
其實(shí)解決問(wèn)題的方式有千萬(wàn)種,沒(méi)有你解決不了的,只有你想不到的。程序員的路還很漫長(zhǎng),如果目標(biāo)更大一點(diǎn),架構(gòu)師啊或者其他的話,這樣的路更長(zhǎng)。而且在職場(chǎng)的話,老板不是要的你的各種阻塞的理由,而是一個(gè)結(jié)果,你解決了沒(méi)有?解決了,ok能力杠杠的,解決不了,對(duì)不起,能力還欠缺。所以,我的原則是:能做的,漂亮的解決;不能做的,評(píng)估一下,想方設(shè)法去解決,這樣才能讓老板或者你的上司相信你,安心把事情給你做,這樣的話,老板器重你了,升職加薪也不是問(wèn)題咯。
?
分享我的全棧書(shū)簽(持續(xù)集成中):https://github.com/GerryIsWarrior/MyBookmarks ? 希望點(diǎn)顆星,這才是我的動(dòng)力
?
個(gè)人簡(jiǎn)介:
- 性別:男
- 愛(ài)好:女
- 目標(biāo):全棧架構(gòu)師
- github:https://github.com/GerryIsWarrior
轉(zhuǎn)載于:https://www.cnblogs.com/GerryOfZhong/p/6094612.html
總結(jié)
以上是生活随笔為你收集整理的以整体思维看问题:解决单页应用,系统角色请求覆盖身份唯一标识(本项目中是session_id命名的)发送请求问题...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 文本比较算法Ⅱ——Needleman/W
- 下一篇: java信息管理系统总结_java实现科