session實(shí)現(xiàn)購(gòu)物車(chē)原理講解 ASP.NET中用session實(shí)現(xiàn)了購(gòu)物車(chē)的功能,怎么把購(gòu)物車(chē)中的數(shù)據(jù)插入到數(shù)據(jù)庫(kù)的ShopCart表中?購(gòu)物車(chē)如下圖?
ASP.NET中用session實(shí)現(xiàn)了購(gòu)物車(chē)的功能,怎么把購(gòu)物車(chē)中的數(shù)據(jù)插入到數(shù)據(jù)庫(kù)的ShopCart表中?購(gòu)物車(chē)如下圖?將會(huì)話中的數(shù)據(jù)取出并保存。您已讀出此頁(yè)上的會(huì)話數(shù)據(jù)。讀取時(shí),可以同時(shí)將數(shù)據(jù)插入
ASP.NET中用session實(shí)現(xiàn)了購(gòu)物車(chē)的功能,怎么把購(gòu)物車(chē)中的數(shù)據(jù)插入到數(shù)據(jù)庫(kù)的ShopCart表中?購(gòu)物車(chē)如下圖?
將會(huì)話中的數(shù)據(jù)取出并保存。您已讀出此頁(yè)上的會(huì)話數(shù)據(jù)。讀取時(shí),可以同時(shí)將數(shù)據(jù)插入數(shù)據(jù)庫(kù)。這樣行嗎?
Opencart中的購(gòu)物車(chē)功能是用session還是操作數(shù)據(jù)庫(kù)的?
在使用數(shù)據(jù)庫(kù)存儲(chǔ)時(shí),您需要給數(shù)據(jù)庫(kù)增加多少負(fù)擔(dān)?更重要的是,對(duì)于需要實(shí)時(shí)操作的購(gòu)物車(chē)來(lái)說(shuō),一旦數(shù)據(jù)庫(kù)訪問(wèn)量大,很容易出現(xiàn)并發(fā)錯(cuò)誤或直接崩潰
不可否認(rèn)的是,使用session確實(shí)很高效,而且session是針對(duì)每個(gè)連接的,所以很容易管理,但是使用session并不完美,因?yàn)闀?huì)話有一個(gè)有效期,根據(jù)服務(wù)器的設(shè)置,有效期是不同的。如果在購(gòu)物過(guò)程中會(huì)話超時(shí),購(gòu)物車(chē)中的所有東西都將消失
我不知道您是否見(jiàn)過(guò)當(dāng)當(dāng). 當(dāng)你離線再上線的時(shí)候,購(gòu)物車(chē)?yán)锏臇|西還是存在的,這對(duì)用戶(hù)來(lái)說(shuō)是非常方便的
所以如果你的服務(wù)器足夠強(qiáng)大,你可以使用一個(gè)靜態(tài)變量來(lái)保存所有用戶(hù)的購(gòu)物車(chē)。例如,你可以用一個(gè)以IP為密鑰的靜態(tài)地圖來(lái)區(qū)分不同用戶(hù)的購(gòu)物車(chē),這樣用戶(hù)就可以在離線時(shí)保存購(gòu)物車(chē)的內(nèi)容了
這個(gè)方法已經(jīng)實(shí)現(xiàn)了,只是不需要大量的并發(fā)訪問(wèn)來(lái)測(cè)試它的穩(wěn)定性,但必須是可行的