我考虑过摆脱所有客户端Ajax调用(jQuery),而是使用永久套接字连接(Socket.IO)。
因此,我将在客户端和服务器端使用事件侦听器/发射器。
例如 用户在浏览器中触发click事件,客户端发射器通过套接字连接将事件推送到服务器。服务器端侦听器对传入事件做出反应,并将“完成”事件推回客户端。客户端的侦听器通过淡入DIV元素来响应传入的事件。
这完全有意义吗?优点缺点?
以一种方式发送消息并调用回调可能会非常混乱。
$.get('/api', sendData, returnFunction); 比…干净 socket.emit('sendApi', sendData); socket.on('receiveApi', returnFunction);
$.get('/api', sendData, returnFunction);
socket.emit('sendApi', sendData);
socket.on('receiveApi', returnFunction);
这就是为什么dnode和nowjs建立在socket.io之上以使事物易于管理的原因。仍由事件驱动,但不放弃回调。