我目前正在阅读WebSharper的文档。在有关FRP的部分中,它指出:
功能性反应式编程(FRP)通常为事件流提供事件类型,为时变值提供行为类型,并在其上提供有用的组合器。
...
但是,目前我们决定避免实施FRP。相反,我们专注于功能的子集,它定义类似于“行为”的时变View值,但不支持实时采样。事件流留给用户使用回调或第三方库来处理。这是对FRP的极大简化,并且更容易有效实施。
随着弱指针在JavaScirpt中变得可用,可以修改此决定,尤其是考虑到OCaml React的成功。
在不久的将来,我们打算提供并发ML组合器,以更好地支持处理事件流并改善组件的组成。
但是,我不确定此处描述的“事件类型”和“行为类型”之间到底有什么区别。我在Google上搜索了一些文章/教程,但是它们似乎也不是很明确。
我不确定在WebSharper的实现中没有“事件”会丢失什么。
抱歉,这个问题听起来很根本。我不熟悉与FRP相关的概念。
-
编辑:我想我找到了我的疑问的答案,那就是没有事件流的不正确之处,在FRP-事件流和信号-仅使用信号会损失什么?。要点如下:
事件流允许累积更新,而行为只能取决于所观察元素的当前值。
如果同时实现了事件和行为,则它们允许在系统内进行递归。
我有一个websharperserverclient
从ionide项目生成器运行模板应用程序的问题 ,并且无法在网上找到任何信息如何做到 - 我得到的最接近的是这个问题 - 我实际上试图xsp4
在项目文件夹中运行它(Web.config
文件所在的位置)是)但每次都得到404(截图附:xsp4错误).当然在启动xsp之前我运行./build.sh
(或FAKE build
)脚本并且它完成没有错误.我websharpersuave
和websharperspa
项目模板没有任何问题(第二个运行xsp4
并且像魅力一样工作).
编辑
文本形式的错误消息:
System.Web.HttpException
无法找到资源.说明: HTTP 404.您要查找的资源(或其中一个依赖项)可能已被删除,名称已更改或暂时不可用.请查看以下网址,确保拼写正确.
详细信息:请求的网址:/
异常堆栈跟踪:
Run Code Online (Sandbox Code Playgroud)at System.Web.StaticFileHandler.ProcessRequest (System.Web.HttpContext context) <0x4202aa80 + 0x00733> in <filename unknown>:0 at System.Web.DefaultHttpHandler.BeginProcessRequest (System.Web.HttpContext context, System.AsyncCallback callback, System.Object state) <0x4202a400 + 0x00153> in <filename unknown>:0 at System.Web.HttpApplication+<Pipeline>c__Iterator1.MoveNext () <0x42012000 + 0x04416> in <filename unknown>:0 at System.Web.HttpApplication.Tick () <0x42010800 + 0x00057> in <filename unknown>:0
ws-replace
Run Code Online (Sandbox Code Playgroud)
属性ws-replace创建Doc或seq孔.设置此属性的元素将替换为提供的文档.洞的名称是ws-replace属性的值.
ws-hole
Run Code Online (Sandbox Code Playgroud)
属性ws-hole创建Doc或seq孔.设置此属性的元素将使用提供的Doc替换其内容.孔的名称是ws-hole属性的值.
你能帮我清楚地区分这两个概念吗?