【问题标题】:Avoid duplicate logic in JavaScript and C#避免 JavaScript 和 C# 中的重复逻辑
【发布时间】:2011-08-12 11:51:02
【问题描述】:

我正在编写一个向导,让用户将字符串映射到对象的属性。这是通过使用用户选择并提供参数的一些预定义规则来完成的。这些规则集合保存到数据库中,稍后通过服务调用运行。

问题在于,在向导中,当用户选择规则并键入参数时,它会突出显示并更新一些示例文本。这是使用 JavaScript 完成的,因此显然是在复制 C# 规则中包含的逻辑。

所以我正在寻找解决这个问题的方法。

规则非常简单,只包含一个要应用的参数列表和一个接受输入字符串并返回结果的方法。

【问题讨论】:

标签: c# javascript code-duplication


【解决方案1】:

您可以使用 AJAX 将数据发送到后端,对其进行处理,然后将其放置在正确的位置。这不会重复那个逻辑。您可能需要维护一些 JS 代码来保持屏幕和服务的连接。

【讨论】:

  • 我确实考虑过 AJAX 调用,但我不确定它们是否足够快,可以在用户键入时进行实时更新。可能会将此作为最后的手段,但我更多的是寻找可以在服务器和客户端上运行的东西。
  • 也许像 smp.if.uj.edu.pl/~mkol/il2js ?我从未使用过它,我敢打赌它只适用于一些最低限度的指令,但仅此而已。此外,您可以尝试在 .NET 中的 JS 引擎中运行相同的 JS 指令。
  • 最终只是在服务器上拥有所有逻辑并发出 ajax 请求。
【解决方案2】:

我对 JavaScript 和 Java 也有类似的情况。我的解决方案是只使用 JavaScript:在客户端,由浏览器运行。在服务器上,就我而言,它是用 Rhino 编译的(用于 JVM 的 JavaScript),但在这两种情况下它是相同的源代码。

.Net 平台支持JScript.Net,与 JavaScript 非常相似。我希望不用太多付出太多的努力,您就可以用 JavaScript 编写一次代码,然后让 JScript.Net 将其编译成一个模块,您可以在服务器端使用您的 C# 代码。

【讨论】:

    猜你喜欢
    • 2021-11-27
    • 2020-08-12
    • 1970-01-01
    • 2010-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多