之前沒(méi)有接觸過(guò)購(gòu)物車(chē)的東東,也不知道購(gòu)物車(chē)應(yīng)該怎么做,所以在查詢(xún)了很多資料,總結(jié)一下購(gòu)物車(chē)的功能實(shí)現(xiàn)。
查詢(xún)的資料,找到三種方法:
1.用cookie實(shí)現(xiàn)購(gòu)物車(chē);
2.用session實(shí)現(xiàn)購(gòu)物車(chē);
3.用cookie和數(shù)據(jù)庫(kù)(購(gòu)物車(chē)信息持久化)實(shí)現(xiàn)購(gòu)物車(chē);
分析一下這三種方法的優(yōu)缺點(diǎn):
1.單純有cookie實(shí)現(xiàn)購(gòu)物車(chē),這樣的購(gòu)物車(chē)不是很理想,設(shè)想一下,如果客戶(hù)端的瀏覽器把cookie給禁用了,這種方法就會(huì)在這里流產(chǎn)…
2.session中保存購(gòu)物車(chē)的信息,這個(gè)只是在一個(gè)會(huì)話(huà)中可用,如果用戶(hù)沒(méi)有登錄,或者說(shuō)登錄了以后,添加購(gòu)物車(chē),在關(guān)閉瀏覽器或者登出后,之前所添加的購(gòu)物車(chē)通通都流產(chǎn)啦…
3.我這里要說(shuō)就是這種方法啦…..
主要的流程:
A.用戶(hù)登錄前的數(shù)據(jù)流:用戶(hù)在沒(méi)有登錄系統(tǒng)的時(shí)候,對(duì)喜歡的商品進(jìn)行添加購(gòu)物車(chē),那么這個(gè)時(shí)候,我們可以把購(gòu)物車(chē)信息保存到cookie中,這里會(huì)涉及到cookie的添加,修改操作;也即如果之前在cookie中不存對(duì)應(yīng)的cookie,則就對(duì)cookie進(jìn)行添加操作。如果在cookie中存在對(duì)應(yīng)的cookie,那么,這時(shí)候,就要對(duì)cookie進(jìn)行修改操作了(這里涉及到用戶(hù)對(duì)同一個(gè)商品進(jìn)行多次添加購(gòu)物車(chē)的情況)。
B.用戶(hù)登錄后的數(shù)據(jù)流:用戶(hù)在登錄后,系統(tǒng)首先做的第一件事就是去獲取對(duì)應(yīng)的cookies,如果存在相關(guān)的購(gòu)物車(chē)cookies,那么就對(duì)該購(gòu)物車(chē)信息進(jìn)行相應(yīng)用戶(hù)User的持久化操作,要么添加,要么修改。(添加操作:該用戶(hù)所對(duì)應(yīng)的購(gòu)物車(chē)如果沒(méi)有相應(yīng)的信息進(jìn)行添加操作;修改操作:類(lèi)似的,如果存在對(duì)應(yīng)用戶(hù)的購(gòu)物車(chē)信息,就進(jìn)行修改操作)。用戶(hù)登錄后,也可以進(jìn)行購(gòu)物車(chē)的添加操作,不過(guò),這里不是添加到cookie中,而是直接持久化到數(shù)據(jù)庫(kù)中。注:用戶(hù)登錄后的數(shù)據(jù)都是和數(shù)據(jù)庫(kù)打交道。