我在一个ColdFusion站点上工作,其中的数据存储在数据库中的WDDX包中,这真的很痛苦。(我不知道为什么这些值不直接存储在另一个表中。)
我以前没有使用过WDDX,而且我能找到的关于它的唯一文档似乎相当陈旧。所以我很好奇是否有人还在使用WDDX,如果有人还在使用,那是为了什么?
发布于 2009-06-23 08:22:43
我使用WDDX在一个不需要数据库的小应用程序中存储配置值。我可以使用一个ini文件和GetProfileString(),但是WDDX要方便得多。
它是XML,所以从理论上讲,您可以使用它来做AJAX (在最初的意义上)。特别是因为在CF8之前没有对JSON的原生支持。
您还可以将它用作XSL转换的输入,这样就不必编写自己的XML来表示结构或查询等CF数据类型。
最后但并非最不重要的一点是,您可以将其用作在数据库中存储各种结构化数据的可扩展方式(例如,涵盖不同情况的日志消息)。我不确定为什么这对您来说是一种痛苦,但也许这更多的是一个架构问题,而不是WDDX问题(?)。
它归结为:它是方便的快速和简单,但可移植和安全(不需要Evaluate()或自定义管道)的方式序列化和反序列化(即“存储”或“持久化”)任何CF数据类型。
发布于 2009-06-23 06:41:56
对于CMS中的页面块配置数据,我们是这样做的。这个决定可以追溯到CF5,我现在可能会使用一种更简单的XML格式(存储的数据只是标量值的序列化散列),但这是避免每次访问父记录时都需要对数据进行额外的多行查询开销的便捷方法。
我猜文档没有太多变化,因为关于一个简单的数据序列化操作,您可以编写的内容只有这么多:)
<cfwddx action="cfml2wddx" input=#raw_data# output="encoded_data"/>
<cfwddx action="wddx2cfml" input=#encoded_data# output="decoded_data"/>发布于 2009-06-25 18:40:45
自从CF8问世以来,我一直使用JSON而不是WDDX。
这两种方法都非常适合序列化某些不需要查询的数据字段,同时保持数据库不变。我会在任何一天使用JSON而不是WDDX。:)
https://stackoverflow.com/questions/1030833
复制相似问题