正在加载图片...
们已经起来并自己穿好衣服了,因为我有理由相信他们很快会这么做的(图1-9)。 对于任何用户界面来说,这是一种沿用已久的实践,即创建异步的线程,让它在后台处理那 些需要计算很久的任务,这样用户可以继续做其他的事情。当启动这个线程的时候,有必要 阻塞用户的操作[4],但是在可接受的很短时间之后,阻塞就会解除。因为存在网络延迟 使用异步方式来处理任何耗时的远程调用是一种很好的实践。 唾的接子 紲件哺 1.啖醒 3.极醒来 4.凝望窗外 5.忘了喂葡 6.通知 图1-9以异步方式响应用户输入的顺序图。如果遵循异步的输入模式,我可以让孩子们在 醒来的时候通知我。在他们缓慢的起床过程中,我可以继续从事其他活动,这使得我被阻塞 的时间大大缩短 实际上,网络延迟问题和相关的解决方案由来已久。在老的客户/服务器模式中,当设计不 佳的客户端程序碰上了高负载的服务器时,用户界面就会出现让人难以忍受的延迟。即便是 在如今的因特网时代,当切换页面时,如果浏览器半天出不来东西,那么这种糟糕的情况很 可能就是因为网络延迟造成的。在现有技术条件下,我们暂时还没有办法消除网络延迟,但 是至少有一个对策,那就是采用异步方式处理远程调用,不是吗? 糟糕的是,对于Web开发人员而言这样做存在一个难点:HIIP协议是一个“请求一响应” 模式的协议。也就是说,客户端请求一个文档,服务器要么返回这个文档,要么告诉客户端 找不着文档或者让客户端去另外一个地方找,还可以告诉客户端可以使用它的本地缓存,诸 如此类。总而言之,“请求一响应”模式的协议是一种单向的通信协议。客户端可以向服务 器发起连接,但是服务器不可以向客户端发起连接。甚至,当客户端下次发起通信请求时, 健忘的服务器都记不起来这个客户端是谁了(HTIP是无连接的) 多数web开发者使用现代的编程语言,例如,Java、PHP或者NET,他们熟 悉用户会话(usersession)的概念,这其实是应用服务器对于不能保持连接状态的HTTP协 议的一种补救措施。HITP就其最初的设计目的来说表现得非常好,采用一些巧妙的处理, 它能够适应设计之初没有考虑的场合。但是我们的这个异步回调方案中的关键特征是,客户 端会收到两次通知,一次是在线程创建的时候,另一次是在线程结束的时候。标准的HTIP 和传统Web应用模型可不会提供这些 像 Amazon那样的传统web应用,是建造在页面概念之上的。给用户显示一个文档,上面 包括各种链接和表单,用户可进一步访问更多的文档。这种交互模式可以在很大的规模上支 持复杂的数据集(就像 Amazon和其他网站已经证明的那样),它所提供的用户体验也足以们已经起来并自己穿好衣服了,因为我有理由相信他们很快会这么做的(图 1-9)。 对于任何用户界面来说,这是一种沿用已久的实践,即创建异步的线程,让它在后台处理那 些需要计算很久的任务,这样用户可以继续做其他的事情。当启动这个线程的时候,有必要 阻塞用户的操作[4],但是在可接受的很短时间之后,阻塞就会解除。因为存在网络延迟, 使用异步方式来处理任何耗时的远程调用是一种很好的实践。 图 1-9 以异步方式响应用户输入的顺序图。如果遵循异步的输入模式,我可以让孩子们在 醒来的时候通知我。在他们缓慢的起床过程中,我可以继续从事其他活动,这使得我被阻塞 的时间大大缩短 实际上,网络延迟问题和相关的解决方案由来已久。在老的客户/服务器模式中,当设计不 佳的客户端程序碰上了高负载的服务器时,用户界面就会出现让人难以忍受的延迟。即便是 在如今的因特网时代,当切换页面时,如果浏览器半天出不来东西,那么这种糟糕的情况很 可能就是因为网络延迟造成的。在现有技术条件下,我们暂时还没有办法消除网络延迟,但 是至少有一个对策,那就是采用异步方式处理远程调用,不是吗? 糟糕的是,对于 Web 开发人员而言这样做存在一个难点:HTTP 协议是一个“请求—响应” 模式的协议。也就是说,客户端请求一个文档,服务器要么返回这个文档,要么告诉客户端 找不着文档或者让客户端去另外一个地方找,还可以告诉客户端可以使用它的本地缓存,诸 如此类。总而言之,“请求—响应”模式的协议是一种单向的通信协议。客户端可以向服务 器发起连接,但是服务器不可以向客户端发起连接。甚至,当客户端下次发起通信请求时, 健忘的服务器都记不起来这个客户端是谁了(HTTP 是无连接的)。 多数 Web 开发者使用现代的编程语言,例如,Java、PHP 或者.NET,他们熟 悉用户会话(user session)的概念,这其实是应用服务器对于不能保持连接状态的 HTTP 协 议的一种补救措施。HTTP 就其最初的设计目的来说表现得非常好,采用一些巧妙的处理, 它能够适应设计之初没有考虑的场合。但是我们的这个异步回调方案中的关键特征是,客户 端会收到两次通知,一次是在线程创建的时候,另一次是在线程结束的时候。标准的 HTTP 和传统 Web 应用模型可不会提供这些。 像 Amazon 那样的传统 Web 应用,是建造在页面概念之上的。给用户显示一个文档,上面 包括各种链接和表单,用户可进一步访问更多的文档。这种交互模式可以在很大的规模上支 持复杂的数据集(就像 Amazon 和其他网站已经证明的那样),它所提供的用户体验也足以
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有