我正在写一个小型网上商店,后端是用Flask编写的,我使用jQuery来显示弹出窗口,过滤一些输入等等。
有一个非常简单的购物车,我在制作它时遇到了一个问题。 我在考虑将所选择的每个产品的ID(以及金额)存储在cookie中,并通过访问它来生成页面的“cart”部分。 目前,我通过向服务器发布一个AJAX调用来设置cookie,然后服务器更新cookie。
使用Javascript:
$('#addcart_' + this_id).click(function() {
$.ajax({
type: "POST",
url: '/cart/',
data: JSON.stringify({"id": this_id, "amount": total_amt}),
contentType: "application/json; charset=UTF-8",
datatype: 'json',
async: false
});
});
在Flask中:
@app.route('/cart/', methods=["POST"])
def cart_update():
if request.method == "POST":
data = request.get_json()
# more code
return resp # response with cookies
现在,我想知道,实际上有什么意义吗?我只需要在cookie中存储一些数据,并且调用Flask似乎没有添加任何东西,所以也许我可以通过JS设置它们并且从此过上幸福的生活? 还是有一些缺点?
答案 0 :(得分:2)
绝对不需要进行服务器端调用来设置所选产品cookie。在客户端更新它是首选,因为它可以消除事务中的所有延迟。
另一件需要考虑的事情是,您的cookie将与每个服务器绑定请求一起发送。如果您不需要此行为(并且您可以使用the browser support for it),则可以使用localStorage
并仅在用户结帐时发回所选值。