Javascript资源文件(.js)与资源文件(.resx)

时间:2014-01-22 07:14:09

标签: javascript json wcf knockout.js resources

我想知道在我的情况下什么是最好的解决方案。 我得到了以下设置:

  • 带有usercontrols的ASP页面
  • Knockout.js
  • 由js
  • 调用的WCF服务
  • Multilangual

我正在我的webservice和我的usercontrol之间进行json来回调用。由于应用程序需要多语言,我考虑将我的一些资源存储在javascript文件中(从webservice和消息发送给用户),这样当例如在服务中抛出错误时,我返回一个错误代码( = ID)(例如:“TECH_4125”)并在lcid的帮助下以正确的语言从我的javascript文件中获取资源。

由于javascript文件存储在缓存中,我认为这是最好的方法(提高性能??? - >但当然你在每个页面上有比所需更多的资源)使用它的另一个原因是因为我们可以重用其他页面上的一些资源。

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)

您更喜欢什么?为什么?

1 个答案:

答案 0 :(得分:1)

作为第一个原则,我认为你应该用它们来制作它们。 JavaScript文件用于JavaScript代码,而不是数据存储。

如果您没有这些,那么我想可以创建一个config.js来存储一般错误消息(当错误与您的Javascript代码有关时)。

但是在你的情况下,你似乎有许多文化支持你,每个文化都有很多错误信息。此外,您的错误与数据库数据有关,例如未找到联系人等。

因此,您需要将这些错误作为Ajax响应的一部分发送给客户端。然后,您的JavaScript应该将这些错误消息传递给用户。

您可以使用用户ID,访问过的国家/地区网址等确定这些响应应该是什么文化,这是一个应用程序范围的常量,可以映射到文化。

您最终想要的是一个JavaScript,它最好不了解文化,只是根据您的错误代码传递相关的错误消息。

结论:

将您的resx文件或存储在db中作为返回相应的错误消息,根据文化返回给客户端,而不涉及客户端。