Рекомендации по форматированию данных Json

У меня есть веб-страница SPA. Данные загружаются с помощью ajax-запросов. Мне нужно показать некоторые чувствительные к культуре данные на этой странице. Каков наилучший способ форматирования такого рода данных? В принципе у меня есть два варианта:

<сильный>1. Отправлять все предварительно отформатированные данные клиенту (предварительно форматировать на сервере)

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

Плюсы:

  • Простая реализация на стороне сервера (внутренняя часть Asp.net mvc).
  • Все в одном месте (один метод в BLL).
  • Меньший JavaScript

Минусы:

  • Возможное дублирование данных (одинаковые данные о продолжительности отображаются в минутах, секундах, т. е. в другом формате, но одни и те же данные).

<сильный>2. Отправить необработанные данные клиенту (форматировать на клиенте)

RawData
{
        Durration = 1645678 // milliseconds        
}

Плюсы:

  • Более простое модульное тестирование (мы можем протестировать все на С#)
  • Более простое обслуживание — наши разработчики больше разбираются в C#, чем
    в Javascript.

Минусы:

  • Больше работы должно быть сделано на стороне клиента
  • Я не уверен, что все форматирование данных можно легко выполнить в javascript.

Изменить

Я получаю вариант на стороне клиента

Спасибо


person Marian Ban    schedule 06.05.2013    source источник


Ответы (2)


Для простого представления данных оба метода подходят. Но имейте в виду несколько других соображений:

  • Все данные, отправляемые клиенту, в принципе доступны для пользователя, даже если они не отображаются напрямую. В некоторых ситуациях это может быть проблемой безопасности.
  • Отправка необработанных данных клиенту и предоставление клиенту возможности обрабатывать все остальное дает больше возможностей для динамического просмотра на стороне клиента.
  • В зависимости от типа приложения и данных отправка данных клиенту может снизить нагрузку на сервер. Однако пользователи с медленными клиентами могут быть проблемой.

Если ни одно из этих соображений не применимо, я бы выбрал то, что наиболее оптимально для разработки и обслуживания. Затем ответ зависит от местных проблем, ресурсов, используемой структуры и т. д.

person Atle    schedule 06.05.2013

Я не понимаю минусов варианта на стороне сервера - как такое форматирование однажды приведет к этому? Особенно когда вы можете хранить свои локализованные данные в файлах ресурсов и просто позволить фреймворку обрабатывать локализацию с помощью простой конфигурации? И да, AFAIK, чистый Javascript не имеет всех тех же возможностей локализации, что и .NET (или Java, или любой другой фреймворк, если уж на то пошло).

Кроме того, плюсы варианта на стороне клиента. Как получается, что кодирование на стороне вашего менее опытного разработчика помогает модульному тестированию и обслуживанию? Вы думаете, что только потому, что это не на стороне сервера, его не нужно тестировать, чтобы все было в порядке?

Мои два цента: если вы не найдете инфраструктуру Javascript, которая может это сделать, пусть серверная сторона справится с этим. В противном случае вы будете изобретать велосипед. Также примите во внимание, что чем больше логики у вас есть на стороне клиента, тем хуже будет внешний вид вашего сайта на недорогих компьютерах, планшетах и ​​мобильных телефонах.

person Geeky Guy    schedule 06.05.2013
comment
для минусов опции на стороне сервера посмотрите пример (объект json) в моем вопросе - person Marian Ban; 06.05.2013