【问题标题】:Call same method both in client-side and server-side在客户端和服务器端调用相同的方法
【发布时间】:2014-04-08 18:15:20
【问题描述】:

我的页面中有一个复杂的计算,我想在客户端和服务器端都执行它。为了方便维护,我更喜欢写一个函数,在客户端和服务端调用。

所以我正在寻找一种可以在 C# 代码中调用 javascript 函数的方法,或者其他可以满足需求的方法。我想到了一个基于服务的函数,我在客户端使用 ajax 和在服务器中调用它作为一个简单的函数;但是,很明显它在客户端会稍微慢一些,因为它应该去服务器然后回来。

有什么想法吗?

【问题讨论】:

  • 不确定如果没有回发或 ajax 调用这是否可行...另一种方法是在 Javascript 中编写代码供客户端使用,然后使用 javascript 解释器服务器端。但不确定我是否更喜欢在 ajax 调用之上,但我相信如果你不介意额外的依赖,它会更快。
  • hmmm 客户端懂html、css、js 服务器端懂真正的编程语言,所以不,使用ajax。或使用 javascript 来计算需要什么,然后他们通过 ajax 发送结果以在服务器端进行比较..
  • 您可以使用node.js作为您的服务器环境,然后相同的javascript计算代码可以在客户端和服务器上以相同的语言(javascript)运行。但是,通常情况下,您会在服务器上计算它并通过 ajax 从浏览器中获取结果。
  • 网络工作者和服务器上没有计算怎么办?

标签: c# javascript asp.net ajax


【解决方案1】:

您要么在服务器上进行计算,然后将它们发送回客户端以在客户端完成其余部分,要么进行 ajax 调用(在客户端上显示加载面板)并返回结果并返回回调。

如果你能提供更多的细节,你会得到更好的帮助。

【讨论】:

    【解决方案2】:

    正如我在评论中所说,我可以在这里想到三个选项。

    • 使用 ajax 调用从控制器获取结果(仅限服务器端计算)。
    • 使用回发,其作用与上述选项几乎相同。
    • 使用像 Jint 这样的 Javascript 解释器,在服务器端执行相同的 Javascript。

    我认为前两个是首选,但如果您真的不打电话或回发,第三个选项可能是一个解决方案。这将导致客户端代码计算它自己的结果,而服务器端也可以这样做。相同的代码,相同的结果,没有从客户端到服务器端的调用。

    例如,一个流行的 .NET Javascript 解释器可能是 Jint,这已经证明了它的稳定性和性能。您可能想检查一下。

    【讨论】:

    • Jint,它是完美的,它是我要求的一个很好的解决方案。非常感谢。
    • 很高兴它有任何帮助! :)
    猜你喜欢
    • 2013-11-17
    • 2011-03-04
    • 1970-01-01
    • 2011-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-18
    相关资源
    最近更新 更多