我正在搜索像django这样的管理面板,为什么nodejs没有?你能否给出关于使用这种管理员的benficts反馈的链接.是不是必须由nodejs ??
来自GWT,Backbone似乎错过了一个关于如何处理视图生命周期的内置解决方案.在GWT中,每个活动(或多或少等同于Backbone中的View)由ActivityManager管理,ActivityManager在活动上调用onStart/onStop,传递eventBus和可以呈现Activity的元素.停止时, ActivityManager将取消绑定活动绑定到eventbus的所有事件,并从DOM中删除视图.
在Backbone中,很容易将事件绑定到模型和集合,但您必须手动删除它们,并且没有通用的api方法可以执行此操作.
所以我正在寻找关于如何管理视图的最佳实践模式,以确保没有被杀死或被禁用的视图正在监听事件.
我见过很多人说Symfony2,Zend Framework 2和其他人都是事件驱动的.
在桌面世界中,通过事件驱动编程,我了解应用程序将在其状态发生变化时通知其观察者.
由于PHP应用程序是无状态的,因此无法做到这一点.IE将观察者绑定到视图,观察用户使用界面时的更改.相反,它需要一个新的请求过程才能更新视图.所以,这不是一个事件,而是一个全新的要求.
另一方面,有一个类似的概念:事件驱动的架构.
在这里你可以阅读:
http://en.wikipedia.org/wiki/Event-driven_programming
http://en.wikipedia.org/wiki/Event-driven_architecture
另一个是:
http://en.wikipedia.org/wiki/Signal_programming
信号是向进程发出事件发生的通知.信号有时被描述为软件中断.信号类似于硬件中断,因为它们中断了程序的正常执行流程; 在大多数情况下,无法准确预测信号何时到达.
- Stackoverflow [singals]标签描述
而且,我以前称之为事件驱动的东西似乎与Qt引入的信号和插槽模式更相关(观察者模式实现)
举个例子,Prado框架声称是事件驱动的:
http://www.pradosoft.com/demos/quickstart/?page=Fundamentals.Applications(应用程序生命周期部分)
http://www.pradosoft.com/docs/manual/System/TApplication.html#methodonEndRequest
IIRC,这不是一个事件驱动的应用程序,而是只是实现该类的类所使用的插件钩子(信号和插槽)observable Interface
.我的意思是,考虑桌面应用程序使用事件的方式以及无状态应用程序使用事件的方式(作为插件):第一个使用整个应用程序的事件,包括视图,最后一个仅用于服务器端操作.
一个与面向方面的编程(带信号和插槽)更相关,另一个与横切关注点/AOP 没有特别的关系.换句话说,它与应用程序状态更相关.
那么,实际上这些术语之间的关系以及它们之间的区别是什么?
这些术语只是通用模式吗?因此,实现观察者模式的所有内容都可以被视为事件驱动的?
UPDATE
Zend框架2
我上面链接的关于AOP的文章(http://mwop.net/blog/251-Aspects,-Filters,-and-Signals,-Oh,-My!.html)由Matthew Weier O'Phinney撰写( ZF领袖).IIRC,它没有提到"事件驱动",只提到信号和插槽.
Symfony 2
Symfony2
EventDispatcher
组件描述没有提及"事件驱动"应用程序:http: //symfony.com/doc/current/components/event_dispatcher/introduction.html 它只包含对"事件"的引用(确实,由信号和插槽处理).
两个框架似乎都使用信号和插槽中的拦截过滤器模式,以便在请求过程中处理同步事件.
我对C中的事件驱动编程非常感兴趣,特别是对于套接字,所以我将花一些时间来做我的研究.
让我们假设我想构建一个包含很多文件和网络I/O的程序,比如客户端/服务器应用程序,基本上第一个问题是这个模型背后的哲学是什么.在正常编程中,我会生成新进程,为什么单个进程实际上可以为许多其他请求提供服务.例如,有一些Web服务器可以处理连接而无需创建线程或其他进程,只需一个主要进程.
我知道这很复杂但至少知道这种编程的基础设施是多么好.
我想生成线程来执行某些任务,并使用线程安全队列与它们进行通信.在我等待的时候,我也想对各种文件描述符做IO.
推荐的方法是什么?我是否必须创建一个线程间管道并在队列从无元素转到某些元素时写入它?有没有更好的方法?
如果我必须创建线程间管道,为什么实现共享队列的更多库不允许您将共享队列和线程间管道创建为单个实体?
我想这样做的事实是否意味着一个基本的设计缺陷?
我问这个关于C++和Python的问题.我对跨平台解决方案略感兴趣,但主要对Linux感兴趣.
更具体的例子......
我有一些代码将搜索文件系统树中的东西.我有几个通过套接字向外界开放的通信渠道.可能(或可能不)导致需要搜索文件系统树中的内容的请求将到达.
我将隔离在一个或多个线程中搜索文件系统树中的东西的代码.我想接受这样的请求,这些请求导致需要搜索树并将它们放入由搜索器线程完成的线程安全队列中.结果将被放入已完成搜索的队列中.
我希望能够在搜索过程中快速为所有非搜索请求提供服务.我希望能够及时对搜索结果采取行动.
处理传入的请求通常意味着使用某种事件驱动的体系结构epoll
.磁盘搜索请求队列和结果返回队列意味着一个线程安全队列,它使用互斥锁或信号量来实现线程安全.
等待空队列的标准方法是使用条件变量.但是,如果我需要在等待期间提供其他请求,那将无效.我最终一直在轮询结果队列(并且平均将结果延迟轮询间隔的一半),阻塞而不是服务请求.
我很好奇是什么赋予nodeJS它现在获得的超级并发性.我实际上并没有使用其中任何一个,只是在我的业余时间玩这两个.
听起来像节点承诺可以设置它的1000个连接,即使使用libevent也可以这样做,比如C++,不是吗?
我正在研究事件基础架构,并了解了两种架构事件溯源和事件驱动架构。
我的理解如下
事件驱动 :
事件溯源:
但我不明白的是,为什么在事件源中重播事件会导出整个事务,但在事件驱动中是不可能的。
如果有人用现实生活中的例子来描述它将会很有帮助。
我正在为我们的角应用添加一些websocket功能.Websocket对象包含在服务中.理想情况下,我们希望我们的包装套接字对象具有标准事件API,以便我们可以在控制器中使用它,如下所示:(抱歉Coffeescript)
angular.module('myApp').controller 'myCtrl', ($scope, socket) ->
update = (msg)->
$scope.apply ->
#do something regarding to the msg
socket.on 'message', update
unregister: ->
socket.off 'message', update
Run Code Online (Sandbox Code Playgroud)
实现这一目标的最佳实践/图书馆是什么?使用jquery?Backbone.Events?任何建议都会有所帮助.谢谢!
在Win32 C++应用程序中,我们启动一个消息循环,从队列中获取消息,转换它们然后调度它们.最终,每条消息都到达我们的WndProc,在那里可以处理相关的事件.
我明白那一部分.我不明白的是介于两者之间.特别:
TranslateMessage()
真正的呼吁是什么?DispatchMessage()
,在到达我的WndProc之前,消息会在什么地方摆动(即操作系统用它做什么)?如果有人知道上述的答案,请满足我的好奇心.谢谢.
我最近阅读了一些类似的代码:
bob = {'name': 'Bob Smith', 'rank': 7};
$(bob).bind("nameChanged", function () { /* ... */});
// ...
$(bob).trigger("nameChanged");
Run Code Online (Sandbox Code Playgroud)
这似乎有效.
但我在jQuery文档或源代码中找不到任何关于使用既不是选择器也不是DOM节点的对象调用jQuery构造函数的内容.所以我的问题是,这是一个受支持的用途,还是它本质上是偶然的?
如果您想在JavaScript中使用模型或View对象的事件驱动模型,您将如何做?