Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用JQuery中的帖子更新Django中的街机风格记分板_Jquery_Django_Http - Fatal编程技术网

使用JQuery中的帖子更新Django中的街机风格记分板

使用JQuery中的帖子更新Django中的街机风格记分板,jquery,django,http,Jquery,Django,Http,我很难决定如何做到这一点,同时避免并发性等潜在问题 JQueryPOSTs中的一个游戏Score到Django中的一个端点。目标是只存储和显示前15名的分数,并最好地模拟传统街机游戏的行为 该行为应将新分数与现有分数进行比较,并且仅在新分数进入记分板时询问用户名,并取消其最低分数 因此,以下是我对如何实现这一点的一些想法(我也不确定哪些Django函数和类是合适的,因此我非常感谢您的帮助): 方法1: JQuery以一个POST,data={“score”:[someNumber],“name”

我很难决定如何做到这一点,同时避免并发性等潜在问题

JQuery
POST
s中的一个游戏
Score
到Django中的一个端点。目标是只存储和显示前15名的分数,并最好地模拟传统街机游戏的行为

该行为应将新分数与现有分数进行比较,并且仅在新分数进入记分板时询问用户名,并取消其最低分数

因此,以下是我对如何实现这一点的一些想法(我也不确定哪些Django函数和类是合适的,因此我非常感谢您的帮助):

方法1:

  • JQuery以一个
    POST
    data={“score”:[someNumber],“name”:“False”}
    开始,对于Django中的一个单独的url端点,我们会说
    url(r'^scoreboard$,scoreBoardView)
    ,所以,
    $.POST(“url.com/scoreboard”,data,function(Response){if Response==…;}

  • Django视图根据
    name
    的值进行分支,并在从帖子中获取
    score
    的值后分配变量
    newScore
    。(我不太确定哪些Django方法将POST传递并解析到视图中。)

  • newScore
    的值与现有分数进行比较,并返回
    True
    False
    响应,具体取决于分数是否会排名。(我还在考虑做这件事的最佳方法:我的想法是,我按值对现有分数进行排序,将新分数与最低值进行比较,如果它更大,我可以删除并替换最低分数,并仅在GET请求时对分数进行排序)

  • 如果为True,则将JQuery分支到另一个
    POST
    ,该POST既有名称也有分数(
    data={“score”:[someNumber],“name”:“[someName]”}
    ,它删除排名最低的分数,并在数据库中创建一个新的
    分数
    条目

  • 方法2:

  • 从记分板中所有分数的GET请求开始(不确定URL参数是什么)
  • 在客户端对现有分数进行相同的比较
  • 如果分数高于最低排名分数和职位,则分支
  • 删除服务器上排名最低的分数
  • 备选方案: 使用这两种解决方案中的任何一种,但要使用单独的端点。要解决缺少大量数据的问题,我不需要使用django rest框架

    也许还有其他选择。
    谢谢。

    我建议至少使用服务器端版本。客户端可以很容易地进行操作,并且可以将无效分数发布到游戏中

    如果您从服务器向客户端请求分数,则至少有一个优点,即不必向服务器发送低于列表中最低分数的分数请求


    但是,由于分数可以实时更新,因此您仍然需要服务器端测试,以查看分数是否有效。

    我建议至少使用服务器端版本。客户端可以轻松操作,并且可以将无效分数发布到您的游戏中

    如果您从服务器向客户端请求分数,则至少有一个优点,即不必向服务器发送低于列表中最低分数的分数请求


    但是,由于分数可以实时更新,因此无论如何,您都需要进行服务器端测试,以查看分数是否有效。

    我不会执行这两项操作

    我建议你返回前15名的结果(不管它是否有你的分数)作为帖子的结果。假设有15分130分、120分、100分、97分…80分,然后你发布了76分。不管怎样,它都会返回相同的前15分。如果你发布的分数将取代前15分之一,你应该将其作为分数保存到数据库中(我建议跟踪所有分数,除非你的磁盘空间严重不足),然后返回前15名,其中包括你的新分数


    希望这有帮助!

    我不会做这两件事

    我建议你返回前15名的结果(不管它是否有你的分数)作为帖子的结果。假设有15分130分、120分、100分、97分…80分,然后你发布了76分。不管怎样,它都会返回相同的前15分。如果你发布的分数将取代前15分之一,你应该将其作为分数保存到数据库中(我建议跟踪所有分数,除非你的磁盘空间严重不足),然后返回前15名,其中包括你的新分数


    希望这有帮助!

    所以,我已经考虑过了,这个回答有点不完整。数据库有15个分数。根据我所寻找的街机风格排行榜行为的类型,当分数被发布到数据库并从前15名中剔除时,新的分数必须要求首字母。在这一点上,我需要有一个默认值输入的名称,以防客户端选择不输入。我仍然认为,对服务器的来回发布和响应会更好地模拟这种行为,但每个请求的并发性都会成为一个更大的问题。因此,我考虑过这一点,并且,此响应有点不完整。数据库有15分。基于arcade st的类型我正在寻找的yle排行榜行为,当分数被发布到数据库并淘汰前15名之一时,新分数必须要求首字母。此时,我需要输入一个默认名称,以防客户端选择不输入。我仍然在想,对服务器的来回发布和响应会模拟这种行为,是吗但是并发性在每个请求中都会成为一个更大的问题。