22、网络应用开发中的通信与导航模式解析

网络应用开发中的通信与导航模式解析

1. 持久通信模式

1.1 版本号与更新

版本号并非常见的编程概念,通常我们不会追踪数据是否发生变化,但追踪数据变化是管理变更的好方法。例如,Subversion 这样优秀的版本控制系统就使用了版本号,许多软件程序也使用构建号来表示软件的变更。

Ajax 应用基于具有特定状态的数据,因此为其关联版本号是个不错的主意。以预订航班为例,在尝试多种排列组合后,我们可能希望回到之前某个请求对应的应用状态,但当前的 Web 应用往往无法满足这一需求。

在 Ajax 应用中,版本号可以被定义为一种独立的模式,但由于持久通信模式需要版本号,所以版本号被视为一个实现细节,尽管这是一个非常关键的实现细节。

1.2 性能考虑

持久通信模式可能会消耗大量资源。服务器端的资源消耗主要在于读取流对资源的占用。虽然 Jetty 已经找到了尽可能有效处理该问题的方法,但如果有数千用户访问各种全局和唯一资源,服务器内存将被占用。

为了更有效地管理资源,一个经验法则是将一个 HTML 页面限制为使用单一的持久通信模式。虽然不阻止使用多个实例,但这可能会导致客户端和服务器端的资源爆炸。例如,如果有 100 个客户端,按照这个规则就会有 100 个活跃连接处于等待状态。因此,在实现该模式时,最好先做一个原型来观察系统的反应。

1.3 模式亮点

持久通信模式的目的是为客户端和服务器提供一种相互通信的机制,使服务器能够在客户端不主动请求的情况下向其发送数据。该模式主要涉及以下三个关键场景:
- 状态更新
- 存在检测
- 服务

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值