基于WEB 的实时事件通知方案

基于 WEB 的实时事件通知方式大致有五种方案:HTTP拉取方式(pull),HTTP流,Long Polling,Flash XMLSocket方式,Java Applet.

首先说下Comet这个词,Comet 这个词是最早由Alex Russell(Dojo Toolkit 的项目 Lead)提出的,称基于 HTTP 长连接、无须在浏览器端安装插件的“服务器推(Push)”技术为“Comet”。

一.HTTP拉取方式(pull)

在这种传统的方法中,客户端以用户可定义的时间间隔去检查服务器上的最新数据。这种拉取方式的频率要足够高才能保证很高的数据精确度,但高频率可能会导致 多余的检查,从而导致较高的网络流量。而另一方面,低频率则会导致错过更新的数据。理想地,拉取的时间间隔应该等于服务器状态改变的速度。常见的实现如利 用 "<meta http-equiv="refresh" content="5" />" tag,当然利用xmlHttpRequest定时取也是一种方法。

二.HTTP流(Push机制)

HTTP流有两种形式:* Page Stream: 页面上不间断的HTTP连接响应(HTTP 1.1 Keep Alive)。

通过在 HTML 页面里嵌入一个隐蔵帧(iframe),然后将这个隐蔵帧的 SRC 属性设为对一个长连接的请求,服务器端就能源源不断地往客户端输入数据。

* Service Stream: XMLHttpRequest连接中的服务器数据流。

客户端是在 XMLHttpRequest 的 readystate 为 4(即数据传输结束)时调用回调函数,进行信息处理。当 readystate 为 4 时,数据传输结束,连接已经关闭。Mozilla Firefox 提供了对 Streaming AJAX 的支持,即 readystate 为 3 时(数据仍在传输中),客户端可以读取数据,从而无须关闭连接,就能读取处理服务器端返回的信息。IE 在 readystate 为 3 时,不能读取服务器返回的数据,目前 IE 不支持基于 Streaming AJAX.

注:使用 Page Stream(iframe) 请求一个长连接有一个很明显的不足之处:IE、Morzilla Firefox 下端的进度栏都会显示加载没有完成,而且 IE 上方的图标会不停的转动,表示加载正在进行。Google 的天才们使用一个称为“htmlfile”的 ActiveX 解决了在 IE 中的加载显示问题,并将这种方法用到了 gmail+gtalk 产品中。Alex Russell 在 “What else is burried down in the depth‘s of Google’s amazing JavaScript?” 文章中介绍了这种方法。Zeitoun 网站提供的 comet-iframe.tar.gz,封装了一个基于 iframe 和 htmlfile 的 JavaScript comet 对象,支持 IE、Mozilla Firefox 浏览器,可以作为参考。(http://alex.dojotoolkit.org/?p=538)

三.长时间轮询(Long Polling)

也就是所谓的异步轮询(Asynchronous Polling),这种方式是纯服务器端推送方式和客户端拉取方式的混合。它是基于BAYEUX协议(http: //svn.xantus.org/shortbus/trunk/bayeux/bayeux.html)的。这个协议遵循基于主题的发布——订阅机 制。在订阅了某个频道后,客户端和服务器间的连接会保持打开状态,并保持一段事先定义好的时间(默认为45秒)。如果服务器端没有事件发生,而发生了超 时,服务器端就会请求客户端进行异步重新连接。如果有事件发生,服务器端会发送数据到客户端,然后客户端重新连接。

1. 服务器端会阻塞请求直到有数据传递或超时才返回。

2. 客户端 JavaScript 响应处理函数会在处理完服务器返回的信息后,再次发出请求,重新建立连接。

3. 当客户端处理接收的数据、重新建立连接时,服务器端可能有新的数据到达;这些信息会被服务器端保存直到客户端重新建立连接,客户端会一次把当前服务器端所有的信息取回。

4.Flash XMLSocket(push机制)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 基于web的网上点餐源码是一种用于开发在线点餐系统的代码和技术解决方案。这一解决方案可以使餐馆、酒店和其他餐饮企业能够在网上接受订单,并提供方便快捷的点餐服务给消费者。 网上点餐源码的特点之一是具备用户注册和登录功能。用户可以通过注册账户,登录系统并进行点餐操作。其次,源码具备菜单管理功能,店铺的菜品信息可以方便地添加、编辑和删除。用户可以通过浏览菜单并选择心仪的菜品进行点餐。 源码还包含订单管理功能,可以方便地查看和跟踪客户的订单。这对于餐馆和酒店管理来说非常重要,因为他们可以实时掌握订单的状态和进展,并进行相应的准备和配送工作。 此外,源码还可能具备在线支付功能,允许顾客通过信用卡、支付宝、微信支付等方式进行支付。这样一来,消费者可以享受到更加便捷和安全的支付方式,同时餐馆和酒店也能够提高收款效率。 综上所述,基于web的网上点餐源码提供了一套完整的技术解决方案,使得餐馆、酒店等餐饮企业能够通过网上平台接受和管理订单,并为消费者提供方便快捷的点餐服务。这种解决方案的使用可以提高效率、降低成本,并提升用户体验。 ### 回答2: 基于web的网上点餐源码是一种用于在线订购和预订餐饮服务的软件代码。这种系统允许用户通过与餐厅网站连接,浏览菜单、选择菜品、定制口味、添加到购物车以及在线支付。 该源码通常包括两个主要组件:前端和后端。前端是指用户可见的网站界面,包括菜单展示、订单管理和交互的功能。后端则处理数据处理和逻辑,包括用户身份验证、菜单管理、订单处理和支付等。 用户访问网站时,可以浏览菜单并浏览菜品的详细信息,如名称、描述、价格和图片。用户可以将菜品添加到购物车中,选择特定的规格和口味,并进行修改。当用户完成菜品选择后,他们可以选择付款方式并完成订单。 餐厅管理人员可以登录后台管理界面,对菜单进行管理,包括添加、编辑和删除菜品。他们还可以查看和管理订单,确认付款和准备估计的送餐时间。 该源码还可以包括一些附加功能,如优惠券、促销活动、自动发送订单确认和通知、评价和评论等。 基于Web的网上点餐源码使顾客可以更加方便快捷地订购餐厅提供的食品,节省了时间和精力。餐厅也可以通过该系统提高效率,减少人力成本,并提供更好的顾客服务体验。 ### 回答3: 基于web的网上点餐源码是一种用于在线点餐的程序代码。该源码通常包含前端和后端的开发,使用户能够通过网页浏览器访问网站,并在线浏览菜单、下单以及进行付款等操作。 该源码的前端部分通常由HTML、CSS和JavaScript等技术开发而成,用于构建用户界面和用户交互。用户可以通过网站浏览菜品,查看图片和描述,并选择所需的食物。前端还提供搜索功能,方便用户按照关键字查找特定菜品。此外,源码还包含购物车功能,用户可以将所选的菜品添加到购物车中,方便管理和修改订单。 后端部分通常采用一种编程语言(如PHP或Python)和数据库(如MySQL)等技术开发而成。后端负责处理前端发送的请求,如用户的注册、登录、下单和支付等。后端还负责与数据库交互,获取和保存菜单、用户信息和订单等数据。它还可以处理付款方式的接口集成,以便用户可以在线支付。 此外,源码还可以包含其他功能,如用户评论和评分、订单跟踪和用户反馈等。这些功能可以帮助用户更好地选择菜品和更好地了解他们的订单状态。 基于web的网上点餐源码的优点是方便快捷,用户可以在任何时间和地点通过互联网访问,并且可以实现多种支付方式。此外,该源码还能提高餐厅的效率和销售额,减少人员成本和订单处理时间。 总而言之,基于web的网上点餐源码是一种有助于提高用户点餐体验和餐厅经营效率的程序代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值