![](/img/trans.png)
[英]How do i store jsonwebtoken on cookie for front-end so client can send back the token for auth
[英]How do I store information about a front-end button on the Django server?
基本上,我想在服务器端存储一个按钮服务,这样它就可以通过关闭浏览器和刷新页面而保持不变。
这是用户正在尝试做的
我做了什么
目前,我已经在客户端使用AJAX调用实现了此功能,但是如果页面刷新,它将重置按钮,他们可以再次单击它。 因此,我研究了使用javascript的localStorage函数,但就我而言,最好将其存储在服务器上。
我认为需要发生的事情
几个问题
非常感谢你的帮助!!
仅仅是为按钮创建模型,然后像往常一样查询数据库吗?
模型可能类似于Button (_id, last_clicked as timestamp, user_id)
查询时只需按timestamp
和LIMIT
1进行排序即可获得最终点击。 通过不覆盖原始值,可以确保更快的写入速度。
如果您不希望每个用户的按钮都具有相似的行为,则必须创建一个按钮与单击该按钮的用户的映射。 即使您当前的需求不需要它们,也可以创建一个可扩展的解决方案,其中使用该表映射用户非常容易。
我如何让Django在30秒后更新数据库,以使按钮的状态从“禁用”变回“启用”?
我避免在没有客户端请求映射到更改的情况下更改数据库。 这样可以确保并发和访问控制。 并且对于当前数据状态也具有更高的可预测性。 之后,我建议不要在时间增量(30秒)之后更新数据库。
取而代之的是,您可以简单地比较last_clicked
时间戳并在发送响应之前在服务器端或在客户端计算出增量。
考虑客户端在其系统上的时间与服务器上的时间不同的情况,此决定可能很重要。
当用户按下按钮时,它将被禁用,但是只会在数据库中将其禁用。 在客户端不刷新页面的情况下,真正禁用按钮的正确方法是什么? 我是否仅禁用javascript中的按钮30秒钟,然后如果他们尝试刷新页面,则视图将看到对产品列表的请求,它将检查数据库中每个按钮的状态,并将正确地提供按钮?
您需要执行POST
请求,以将按钮按下时间戳记与数据库进行通信。 您还需要确保POST
请求成功,因为如果关闭浏览器,失败的请求将不会保留数据。 完成上述两个操作后,您可以仅从客户端禁用按钮,而无需尝试获取按钮last_clicked
时间戳。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.