2014-01-22 2 views
0

Мне интересно, какое лучшее решение в моем случае. я получил следующую установку:Файл ресурса Javascript (.js) и файл ресурсов (.resx)

  • ASP страницы с UserControls
  • Knockout.js
  • WCF услуга, вызываемая JS
  • MultiLangual

я делаю JSON назад и вперед звонки между моим веб-сервисом и моим пользовательским контролем. Поскольку приложение должно быть многоязычным, я подумал о сохранении некоторых моих ресурсов в файле javascript (отправленном из веб-сервиса и сообщениям пользователям), так что, когда, например, в службе возникает ошибка, я возвращаю код ошибки (= ID) (пример: «TECH_4125») и получить ресурс из моего javascript-файла на правильном языке с помощью lcid.

Поскольку файлы javascript хранятся в кеше, я думал, что это будет лучший способ сделать это (для повышения производительности ??? -> но, конечно, у вас больше ресурсов, чем нужно на каждой странице). Еще одна причина для использования этого потому что мы можем повторно использовать некоторые ресурсы на других страницах.

Пример яваскрипта ресурсов

  • ресурсы-2067.js

    var MessageCode={"NOT_0003":{"Label":"Geen resultaten gevonden","Display":"1 - Geen resultaten gevonden"}}; 
    
  • ресурсы-2057.js

    var MessageCode={"NOT_0003":{"Label":"No results found","Display":"1- No results found"}}; 
    
  • ресурсы-1031.js

    var MessageCode={"NOT_0003":{"Label":"Aucun résultat trouvé","Display":"1- Aucun résultat trouvé"}}; 
    

(+ я получаю мою метку ресурса с помощью, например: MessageCode.NOT_0003.Label)

Что бы вы предпочли и почему?

+0

Я не могу себе представить, что это никто не знает? – RubenHerman

ответ

1

Как первый принцип, я думаю, вы должны использовать вещи для своих целей. Файлы JavaScript предназначены для кода JavaScript, а не для хранения данных.

Если у вас их не так много, то, я думаю, нормально создавать config.js, где вы храните общие сообщения об ошибках (когда ошибки связаны с вашим кодом Javascript).

Но в вашем случае у вас, кажется, есть много культур, которые вы поддерживаете, и для каждого из вас есть много сообщений об ошибках. Кроме того, ваши ошибки касаются данных базы данных, таких как контакт не найден и т. Д.

Таким образом, вам необходимо отправить эти ошибки как часть вашего ответа Ajax клиенту. Затем ваш JavaScript должен передавать эти сообщения об ошибках пользователю.

Вы можете определить, в какой культуре должны отвечать эти ответы, используя идентификатор пользователя, URL-адрес посещенной страны и т. Д., Который является постоянным приложением и может быть отображен в культуру.

Что вы хотите получить, это JavaScript, который предпочтительно не знает культуры, а просто передает соответствующие сообщения об ошибках на основе ваших кодов ошибок.

Вывод:

держать ваши Resx файлы или хранить в БД, как ответное сообщение соответствующее сообщение об ошибке клиента на основе культуры без привлечения на стороне клиента.

+0

Почему Microsoft «рекомендует» его (путем создания пошагового руководства) http://msdn.microsoft.com/en-us/library/bb398935.aspx – RubenHerman

+0

Это крошечный объект с некоторыми сообщениями об ошибках. То, что вы спрашиваете, похоже на то, что вы хотите использовать js-файл в качестве механизма хранения, аналогичного файлу ресурсов. Что очень сильно связано с разделением внимания – XGreen

+0

Кроме того, в этом примере у нас есть только английский язык, поэтому применяется простое сопоставление кода ошибки с строковым значением для пользователя. но в вашем случае мы имеем разные языки, что делает объект более крупным и дает задание правильного языкового значения интерфейсу для работы переднего конца. – XGreen

Смежные вопросы