第一次做btoc站點的購物車,總結了一下購物車中資料的存放方式
方式1:用會話
會話中可以存放任何型別資料,每個使用者有乙個唯一的會話id,用此id區分不同使用者的購物車
會話資料是存放在web伺服器的記憶體中的,如果使用購物車的使用者比較多的話,這樣一來將占用大量伺服器資源
會話有一小缺陷,它是依靠cookie來與使用者通訊的,一旦使用者關閉cookie,使用會話將比較麻煩
當然在asp。net中還有另2種方式儲存會話資料
一種是指定另一台伺服器來存放會話資料,這樣一來可以有效分擔web伺服器的執行開銷。
另一種是把會話資料存放在ms sql中,ms sql是利用區域性臨時表實現的,會話資料放在區域性臨時表中,ms sql為每乙個區域性臨時表也分配乙個唯一的id
,我想是用此id區分不同使用者的不同會話資料的。但是我不推薦使用此方法,頻繁在資料庫裡面建立和刪除臨時表對資料庫的開銷太大
方式2:在資料庫裡面用表(shopingcart)
我喜歡的實現方式
表有幾個基本字段
cartid 購物車id(唯一)
id 商品的id(唯一)
qty 使用者購買商品的數量
createdate 購物車建立時間
此表的字段cartid是區分不同使用者的購物車的id,要是登陸使用者,你可以在表中存放此登陸使用者的登陸名的id,要是未登陸使用者使用購物車,
你可以給他分配乙個guid(全球唯一標誌)做購物車id
此方法有也有一些缺陷,一是它會造成大量無效資料,大家都知道,使用購物車的人,不一定會最終結帳購買商品。但是使用購物車就得
往表(shopingcart)裡面插入相關資料,未登陸使用者一離開站點,他在表中的資料就成了一堆廢資料,因為他在下次登陸時,我們分配給他的
是乙個新的cartid購物車id.有廢資料我們就得時常來維護此表,我們可以寫乙個清除廢資料的過程(利用欄位createdate和cartid可以判斷無效資料),人工呼叫執行也可以,要是想由ms sql代我們來執行,就可以設定乙個job,由job自動呼叫過程清楚廢資料
說拉缺陷,我們該說說此方式的優點拉
1。占用系統資源少,我們可以把資料庫安置在一台電腦中,web伺服器安置在另一電腦中,系統資源充分發揮
2。購物車中資料可以得到有效保留,我們可以試想一客戶在購物時,突然某其他原因(宕機等原因)離開了購物站,他在購物車中資料有效保
留下來,他下次登陸時購物車中還有上次保留的資料,避免使用者再次選購商品的操作(此功能只對登陸使用者的購物車有效) ,要是用會話實現
購物車,所有使用者一旦離開站點,他的購物車中資料全部失效
好拉,我就總結了這些,由於剛剛接觸asp。net,對許多方面還認識不多,可能還有其他一些方法實現購物車,希望大家能夠給與指點,謝謝大家
我的email: [email protected]
購物車(註冊 登入 購物 購物車 結帳)
購物車 註冊 登入 購物 購物車 結帳 shopping car dict dict money 0 def input username pwd username input username pwd input pwd return username,pwd def goods get with...
購物車原理
1.cookie n cookie儲存在客戶端,且占用很少的資源,瀏覽器允許存放300個cookie,每個cookie的大小為4kb,足以滿足購物車的要求,同時也減輕了伺服器的負荷 n cookie為瀏覽器所內建,使用方便。即使使用者不小心關閉了瀏覽器視窗,只要在cookie定義的有效期內,購物車中...
購物車動畫
金幣終點的x位置 cgfloat positionx 290.0f 終點x 金幣終點的y位置 cgfloat positiony 500.0f 終點y cgmutablepathref path cgpathcreatemutable 金幣的起始x位置 int fromx 20 arc4random...