【问题标题】:jQuery Ajax call to F#?jQuery Ajax 调用 F#?
【发布时间】:2010-12-11 02:53:44
【问题描述】:

有没有什么方法可以使用 jQuery 调用 f# 库而无需将其包装到 Web 服务方法中?

【问题讨论】:

  • 我很难想象一个替代方案,没有编写一个 FSharp 编译器或 IL 反编译器来生成 JavaScript 作为其目标语言。你到底在找什么?是什么问题让您拒绝将您的功能公开为服务?
  • 您可以编写自己的http服务器,基本上打开80端口并响应相应的命令。
  • @Jason,这严格来说是我正在努力解决的理论测试项目。

标签: .net jquery web-services f#


【解决方案1】:

如 cmets 中所述,您可以将 F# 转换为 JavaScript。这实际上非常可行,因为它可以使用引号(F# 代码的高级表示)。有两个项目可以做到这一点。一个是相当复杂的commercial project named WebSharper(也有其他功能),另一个是open source project FSharp.Javascript

如果你想避开 web 服务,你也可以写一个简单的 HTTP 服务器。这将是一个可以在服务器上运行的独立应用程序,它将直接处理请求。我在最近的talk in London 中使用HttpListener 类做到了这一点。你可以find the sample here

肯定还有其他方法 - 如果您在 ASP.NET 应用程序中工作,那么您可以使用HttpHandler 或用 F# 编写的页面来直接处理请求。将主前端作为 C# 项目可能更容易,但您可以在 F# 中编写页面/处理程序,然后在 C# 中引用它或从它继承(例如 using ASP.NET MVC is here)。

【讨论】:

  • +1:我的公司使用 ASP.NET MVC + jquery 正是为了这个目的:jQuery 对控制器方法进行 Ajax 调用,该方法返回一个 JsonResult,jQuery 可以将其提取出来并显示在屏幕。我们在后端使用 C#,但原则上没有理由不能使用 F#。
  • FSharp.Javascript 项目在最近几个月里有了很大的改进,我很想听听一些关于它的反馈。我还创建了用于 ASP.NET MVC 框架的 FSharp.Javascript.Mvc (github.com/jgreene/FSharp.Javascript.Mvc) 项目。例如,我用 F# 编写了俄罗斯方块,它在浏览器中运行:fscript.justsimplecode.com/canvas
  • @感谢您提供全面的答案和有用的链接!
  • @justin 我对这个项目很感兴趣——我只是需要找个借口把它用于某事:-)!
  • @Juliet,我工作的公司使用 Grails + jQuery 做同样的事情(“webservices”只是处理 URL 编码的 GET 或 JSON 编码的 POST 并以 JSON 编码的纯文本响应的控制器操作)对 Swing 客户端和浏览器客户端都有很好的效果。
【解决方案2】:

您可以编写一个 HttpHandler 作为包装器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-03
    • 1970-01-01
    • 2013-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多