Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.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
Javascript HTML5游戏的对象存储-使用什么?_Javascript_Xml_Json_Html_Css - Fatal编程技术网

Javascript HTML5游戏的对象存储-使用什么?

Javascript HTML5游戏的对象存储-使用什么?,javascript,xml,json,html,css,Javascript,Xml,Json,Html,Css,我是一个相当精通的程序员,所以学习新技术应该不是什么大问题。也就是说,我目前正试图使用canvas/javascript等在HTML5中制作一款纸牌游戏 我现在的问题是如何存储卡的实例。我曾考虑使用XML存储卡数据,但我想限制浏览器的工作量,以使游戏运行更顺畅。我听说JSON是一个不错的选择,但我只是想寻求建议。谢谢 我认为JSON更好。 您可以在服务器端将对象序列化为JSON,并将JSON字符串发送到客户端(浏览器),然后您的客户端将能够使用JSON.parse将JSON字符串解析为常规Jav

我是一个相当精通的程序员,所以学习新技术应该不是什么大问题。也就是说,我目前正试图使用canvas/javascript等在HTML5中制作一款纸牌游戏


我现在的问题是如何存储卡的实例。我曾考虑使用XML存储卡数据,但我想限制浏览器的工作量,以使游戏运行更顺畅。我听说JSON是一个不错的选择,但我只是想寻求建议。谢谢

我认为JSON更好。
您可以在服务器端将对象序列化为JSON,并将JSON字符串发送到客户端(浏览器),然后您的客户端将能够使用
JSON.parse
将JSON字符串解析为常规JavaScript对象。 这样,您就不需要遍历XML来查找特定节点,而只需要使用本机JavaScript对象/数组以更方便的方式处理数据。 而且在大多数情况下,JSON比XML更紧凑,因此可以节省带宽并加速数据加载。

此外,数据类型的内容在这里可能很重要-JSON正确地表示数据类型(整数、布尔值、浮点值、字符串),XML将它们存储为字符串,因此您需要一些附加属性来在序列化期间设置数据类型,并在反序列化期间确定数据类型。

如果没有框架,我不知道如何做到这一点,但我要做的是使用Backbone.JS并创建一个实例的模型。例如:
{CardNumber:'2',CardColor:'red',CardClass:'hearts'}
。现在我将创建一个集合来容纳所有这些模型,请参见主干集合

因此,我将在客户端存储所有这些数据,并可能为用户提供保存游戏的选项,将这些数据持久保存到数据库中。这会将其存储为JSON,然后当您将其持久化到数据库时,您可以将其序列化以获取各个组件

如果您不想保存到数据库,也不想使用框架。尝试Javascript中的堆栈/队列实现。见:

我希望这能回答你的问题。

  • 坚持使用JSON,因为JSON只是简单JS对象的字符串表示,浏览器对它非常熟悉。JS没有很好的XML处理能力,这太昂贵了

  • 使用HTML5 localStorage保存数据,直到您真正需要与服务器同步。频繁的服务器操作将导致游戏受损。使用批量数据传输,而不是许多小型服务器连接(例如在开始和结束时)

  • 如果画布图形很密集,可以考虑使用游戏库。我以前用过,但应该有更好的libs。仅选择性地渲染动态对象,而不是画布上的所有对象

JSON与的结合是一个很好的方式


有一些库可用于序列化和反序列化Javascript对象,并允许您从localStorage存储和检索它。这是一个很好的开始

这些卡片的实例是什么意思?这些将是直接的JavaScript对象,是吗?是的。卡名称、类型、hp蚀刻程序?这是什么样的纸牌游戏?不是标准的52套吗?这是多人纸牌游戏吗?最终会的,不,不是标准的52套