Json数据格式化最佳实践

时间:2013-05-06 11:41:26

标签: javascript model-view-controller web-applications single-page-application

我有一个SPA网页。数据加载了ajax请求。我需要在该页面上显示一些文化敏感数据。形成此类数据的最佳方法是什么? Basicaly我有两个选择:

1。发送预先格式化为客户端的所有数据(在服务器上预格式化)

Preformated
{
    DurrationInMinutes = '2 min'
    DurationInSeconds = '120 sec'
}

优点:

  • 简易服务器端实现(Asp.net mvc后端)。
  • 一切都在一个地方(BLL中的一种方法)。
  • 较小的JavaScript

缺点:

  • 可靠的数据复制(以分钟为单位显示相同的持续时间数据, 秒,即不同的格式,但相同的数据)。

2。将原始数据发送到客户端(客户端格式)

RawData
{
        Durration = 1645678 // milliseconds        
}

优点:

  • 更简单的单元测试(我们可以用c#测试所有内容)
  • 更容易维护 - 我们的开发人员在c#中更加经验丰富 的Javascript

缺点:

  • 必须在客户端完成更多工作
  • 我不确定是否可以在javascript中轻松完成所有数据格式化

修改

我最终得到了客户端选项

由于

2 个答案:

答案 0 :(得分:3)

对于简单的数据表示,两种方法都可以。但请记住其他一些注意事项:

  • 发送给客户端的所有数据原则上都可供用户使用,即使它没有直接显示。在某些情况下,这可能是一个安全问题。
  • 将原始数据发送到客户端并让客户端处理其余数据为客户端动态查看提供了更多可能性
  • 根据应用程序和数据的类型,将数据发送到客户端可以减少服务器上的负载。但是,客户端较慢的用户可能会成为一个问题。

如果这些考虑因素都不适用,我会选择最适合开发和维护的方法。答案取决于当地问题,资源,使用的框架等。

答案 1 :(得分:1)

我不明白服务器端选项的缺点 - 如何格式化一次会导致这种情况?特别是当您可以将本地化数据保存在资源文件中时,只需让框架通过简单配置处理本地化?是的,AFAIK,纯Javascript没有.NET(或Java,或任何其他框架)的所有相同的本地化功能。

此外,客户端选项的优点 - 如何在您的开发人员缺乏经验的方面进行编码有助于单元测试和维护?你是否认为仅仅因为它不在服务器端,它不需要被测试就可以了?

我的两分钱:除非你找到一个可以做到这一点的Javascript框架,让服务器端处理它。否则你将重新发明轮子。另外还要考虑到客户端逻辑越多,您的网站在低端机器,平板电脑和手机上的外观就会越差。