AJAX调用已经将Web上的用户交互向前推进了一大步:我们不再需要重新加载页面以响应每个用户输入。使用AJAX,我们可以在服务器上调用特定的过程并根据返回的值更新页面,从而为我们的应用程序提供快速的交互性。
在AJAX之前,网页上的交互性非常笨重。任何用户交互都需要在服务器上生成页面的更新版本,发送到浏览器并在那里呈现。在这个模型中,交互的基本单位是页面。无论浏览器发送到服务器的是什么,无论所需的更新有多小,结果总是一个全新的页面。这浪费了线路流量和服务器资源,对用户而言是缓慢而痛苦的。
AJAX通过对事物进行粒化来解决这个问题:你现在可以发送数据,仅接收由其触发的交互的结果,然后根据此响应更新页面的相关部分。使用AJAX,我们从一个通用调用(“给我一个新页面”)到多个特定于交互的调用。使用AJAX,我们进行了远程过程调用在服务器上进行了(RPC)。
AJAX调用没有涉及的是来自服务器的更新,这是现代实时和协作Web所需要的,这种对更新的需求涵盖了通知用户需要,比如有些新闻网站的潜在数百万读者的通知。除了AJAX的响应请求之外,还需要另一种消息模式,一种可以在任何规模下工作的模式:PubSub(发布和订阅)是一种已建立的消息传递模式,也可实现通知的目的。
用于处理许多客户端更新的已建立的消息传递模式是PubSub。当客户端向主体发送事件(“发布”)时,会将此事件分发给所有当前连接和订阅的客户端。
PubSub模式的一大优势是发布者和订阅者通过代理分离。发布者不需要任何关于主题的当前订阅者的知识,并且订阅者同样不需要任何发布者的知识。这意味着PubSub很容易在发布者和订阅者中实现,并且可以很好地扩展。
PubSub的众多实现可供选择,基本每种编程语言都可以实现。
在消息通知方面,PubSub比ajax使用更加灵活方便,如果AJAX不够用可以选择PubSub可以帮助实现。
领取专属 10元无门槛券
私享最新 技术干货