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