当前位置: 首页 > news >正文

怎样策划一个营销型网站豌豆荚app下载 官网

怎样策划一个营销型网站,豌豆荚app下载 官网,1m的带宽做网站可以吗,wordpress 百科模板3#xff0e;1服务器推送技术(Server Push) 3#xff0e;1#xff0e;1服务器推送技术概述 服 务器推送技术是最近Web技术中最热门的一个流行术语#xff0c;它是继AJAX之后又一个倍受追捧的Web技术。我们可以认为AJAX解决了单用户响应的问题#xff0c;而 服务器推送则…31服务器推送技术(Server Push) 311服务器推送技术概述 服 务器推送技术是最近Web技术中最热门的一个流行术语它是继AJAX之后又一个倍受追捧的Web技术。我们可以认为AJAX解决了单用户响应的问题而 服务器推送则解决了在保证性能的前提下进行协同多用户的响应问题。由图31和图32的比较可以看出服务器推送的优点在于它可以在任何时候向客户端发 送数据而不仅仅只是响应用户的输入请求。而发送数据是在一个已有的单连接上进行的因此可以大大降低发送数据的延迟时间(建立连接的开销以及客户端发 送请求的等待时间)。 传统模式的Web系统以客户端发出请求、服务器端响应的方式工作。浏览器的主要工作是发送请求、解析服务器的回复消息并显示。服务器的主要工作是根据接收浏览器发送的各种请求作出响应。 浏 览器作为Web应用的前台自身的处理功能比较有限。AJAX是浏览器技术发展的成果通过在浏览器端发送异步请求提高了单用户操作的响应性。AJAX 将整个页面的刷新变成页面局部的刷新并且数据的传送是以异步方式进行这使得网络延迟带来的视觉差异将会消失。AJAX还利用DHTML和丰富的 JavasSript语言来模拟桌面系统的各种事件和响应过程以及平滑滚动和拖拽的效果。在AJAX的世界中除了传统的CAD设计软件和大型游戏软件 等因为对系统硬件的苛刻需求还离不开桌面系统以外似乎其他所有的应用都可以变成Web应用了。 但 是传统的Web应用包括基于AJAX的Web应用还是存在一个致命的缺陷使得Web系统无法满足传统桌面系统的需求那就是服务器发起的消息传递 (Server-InitiatedMessage Delivery)。在很多的应用当中服务器端需要向客户端主动发送消息或信息。因为服务器掌握着系统的主要资源能够最先获得系统的状态变化和事件的 发生。当这些变化发生的时候服务器需要主动地向客户端实时地发送消息。例如监控、即时通信、即时报价系统等都需要将后台发生的变化实时传送到客户端而无 须客户端不停地刷新页面、发送请求。在传统的桌面系统中这种需求没有任何问题因为客户端和服务器之间通常存在着持久的连接这个连接可以双向传递各种 数据。而基于I-1TrP协议的传统Web应用却不行在这些系统中Web服务器总是被动地根据客户端的请求发送数据它无法保证服务器将更新的信息实 时地传送给客户端从而用户可能在“过时”的信息下进行操作。 在 传统的Web系统中只有当浏览器向服务器发送出请求后服务器才会发送出数据。而浏览器其实并不知道服务器的信息什么时候会有改变为了模拟实时的交 流或者不想错过某些信息只能通过轮询(Polling)技术不断刷新页面来获得最新的数据(见图33)。这种方式不但浪费服务器的资源最重要的是 每次建立或关闭新的Hr】『P连接都有一定的延迟这种延迟使得频繁信息传递的应用无法忍受。于是就产生了“服务器推送技术刀。 服 务器推送技术的基础思想是将浏览器主动查询信息改为服务器主动发送信息。服务器发送一批数据浏览器显示这些数据同时保证与服务器的连接。当服务器需要 再次发送一批数据时浏览器显示数据并保持连接。以后服务器仍然可以发送批量数据浏览器继续显示数据依次类推。这种技术可以被应用在股票实时情报 系统状态报告天气情况等监测系统中。使用服务器推送技术后的系统模型如下图所示 312服务器推送技术的实现方案 服 务器推送技术在很久以前就出现过例如Netscape曾经推出适用于Push技术的专用浏览器和经过修改的HTML语言。但是这仅仅在特定的浏览器中才 能使用其他流行的浏览器(Ⅲ等)就不兼容这种技术。以前实现服务器推送的方案主要是在浏览器端安装插件基于套接口传送信息自定义TCPIP信息的 Applet来实现或是使用RMI、CORBA进行服务器端的远程调用。这些技术往往由于复杂而产生诸多不利之处技术难以实现、存在防火墙限制(因为 需要打开非HTTP的通讯端口)、需要额外的Server开发和维护。并且除了刷新整个页面或者完全采用Applet展示内容之外很难找到别的方法将客 户端Applet的状态和浏览器的页面内容集成在一起。 现 在的服务器推送技术是基于HTTP长连接而实现的。它保持原有的H兀P协议不变在服务器端改变处理方式使得服务器能够使用浏览器已经打开的册连接主 动向浏览器发送消息。这里关键的技术是要保持原有的HITP连接不断一旦拥有持久的连接服务器就可以根据自己的数据更新随时地向客 户端发送最新的信息。 Alex Russell(Dojo Toolkit的项目领导人)称这种基于哪长连接、无须在浏览器端安装插件的服务器推送技术为Comet。目前已经出现了一些成熟的Comet应用以及各 种开源框架。一些Web服务器如Jetty也在为支持大量并发的长连接进行了很多改进。根据客户端处理长连接技术的不同常用的有两种Comet应用的实 现模型。 3121基于AJAX的长轮询(10ng-polling)方式 如图34所示AJAX的出现使得JavaScfipt可以调用XMLHttpRequest对象发出的肌’P请求JavaScript响应处理函数根据服务器返回的信息对HTML页面的显示进行更新。使用AJAX实现服务器推送与传统的AJAX应用不同之处在于 1服务器端会阻塞请求直到有数据传递或超时才返回。 2客户端JavaScript响应处理函数会在处理完服务器返回的信息后再次发出请求重新建立连接。 3 当客户端处理接收的数据、重新建立连接时服务器端可能有新的数据到达这些信息会被服务器端保存直到客户端重新建立连接客户端会一次把当前服务器端所 有的信息取回。基于长轮询的服务器推模型一些应用及示例如“Meebo”“Pushlet Chat”都采用了这种长轮询的方式。相对于上面提到的“轮询”(polling)这种长轮询方式也可以称为“拉”(pull)。因为这种方案基于 AJAX具有以下一些优点请求异步发出无须安装插件IE、FireFox都支持AJAX。 在 这种长轮询方式下客户端是在XMLHttpRequest的readystate为4(即数据传输结束)时调用回调函数进行信息处理。当 readystate为4时数据传输结束连接已经关闭。Firefox提供了对StreamingAJAX的支持即readystate为3时(数 据仍在传输中)客户端可以读取数据从而无须关闭连接就能读取处理服务器端返回的信息。m在readystate为3时不能读取服务器返回的数据 目前Ⅲ不支持基于Streaming AJAX。 3122基于iframe及htmlfile的流(streaming)方式 iframe 是很早就存在的一种HTML标记 通过在HTML页面里嵌入一个隐葳帧然后将这个隐葳帧的SRC属性设为对一个长连接的请求服务器端就能源源不断地往客户端输入数据。上面提到的 AJAX方案是在JavaScript里处理XMLHttpRequest从服务器取回的数据然后Javascript可以很方便的去控制HTML页面 的显示。同样的思路用在iframe方案的客户端iframe服务器端并不返回直接显示在页面的数据而是返回对客户端Javascript函数的调 用如script type”textjavascript”js_func(”data from server”)script。服务器端将返回的数据作为客户端JavaScript函数的参数传递客户端浏览器的 Javascript引擎在收到服务器返回的JavaScript调用时就会去执行代码。简而言之其基本原理就是从Servlet把 JavaScript代码作为H兀P流推送到浏览器。这些代码被浏览器的JavaScript引擎解释并完成相应的工作于是便完成了从服务器端的 Java到浏览器中的JavaScript的回调。 从图35可以看到每次数据传送不会关闭连接连接只会在通信出现错误时或是连接重建时关闭(一些防火墙常被设置为丢弃过长的连接服务器端可以设置一个超时时间超时后通知客户端重新建立连接并关闭原来的连接)。 使 用iframe请求一个长连接会有一个不足之处IE、Morzilla Firefox下端的进度栏都会显示加载没有完成而且Ⅲ上方的图标会不停的转动表示加载正在进行。一个被称为“htmlfile”的ActiveX解 决了在正中的加载显示问题gmailgtalk产品中使用了这个解决方案。 32开源的服务器推送一Pushlets · 321 Pushlets概述 Pushlets 是一个开源的Comet框架在Servlet机制下数据从服务器端的Java对象直接推送(push)到动态HTML页面而无需任何 JavaApplet或者插件的帮助。它使服务器端可以主动地更新客户端的web页面。浏览器为兼容JavaScriptl4版本以上的浏览器(如 Intemet Explorer、FireFox)并使用JavaScriptDynamicHTML特性【5】。Pushlets支持上一小节提到的两种服务器推 送的实现方式既提供了基于AJAX的JavaScript库文件用于实现长轮询方式的服务器推送也提供了基于iframe的JavaScript库文 件用于实现流方式的服务器推。原则上Pushlets框架能够运行在任何支持Servlet的服务器上、防火墙的后面。‘Pushlets通过标准 Java特性中Object的wait()和notify()实现了观察者模型客户端发送请求订阅感兴趣的事件服务器端为每个客户端分配一个会话 ID作为标记事件源会把新产生的事件以多播的方式发送到订阅者的事件队列里。浏览器只需要发送两个请求一个是连接请求事件一个是对后台事件进行监听 订阅的请求如果后台对应的数据发生了变化则这个变化会反应到订阅者的事件队列中这种机制是轻量级的。 322 Pushlets架构 Pushlets 框架允许客户端订阅在服务器端的主题(subject)而服务器则接收订阅然后在服务器端的订阅主题所对应的数据变化时推送数据到客户端。此框架的基 本设计模式是发布订阅(PublishSubscribe)也被称为观察者模式(Observer)。它由Server和Client两部分组建而 成。 3221 Server端架构 Server 端由围绕着Pushlet类的Java类集合构成。下面的UML图表示了几个最重要的类之间的关系包括Publisher、Subscriber和 Event。客户端通过HTTP请求连接到Pushlet servlet订阅并接收消息。请求中包含了要求订阅的主题和接收消息的方式(JavaScript调用、XML或者Java序列化对象默认为 JavaScript调用)。Publisher对象中记录了它的所有Subscriber可以将Event发送到相应的Subsciber中。 对照图36简要说明一下几个关键的类Pushlet是一个Servlet接收来自客户端的请求并创建一个订阅者(Pushlet Subscriber)然后调用初始化方法订阅一个主题最后由该订阅者保持客户请求返回内容。 PushletSubscriber 是与每个客户端对应的订阅者首先根据客户端的请求建立客户端适配器ClientAdapter并将自己注册到一个特定的Pub lisher那里然后保持这个http连接并将其自身阻塞于一个事件队列之上事件则对应于一个主题如果有事件入队列则被唤醒并调用 ClientAdapter向客户端推送数据 C1ientAdapter屏蔽了不同的客户端协议的差异将从PushletSubscriber获取到的事件转换为JavaScript格式并将它推送到客户端浏览器 Publisher采用单实例模式提供静态接口供其他类订阅发布消息它维护着一组订阅者的列表事件到来时通过比较订阅者的主题和事件的主题可将事件放入相应的事件队列唤醒所有在此事件队列上等待的客户端订阅者(PushletSubscriber) Postlet类似于Pushlet其所处位置和Pushlet相同用于客户端主动服务器端发送消息。 Eventer source事件源通过监听外部事件而产生Pushlet事件并调用Publisher发布事件。 3222 Client端架构 Client 端由脚本与页面组成。如果选择使用基于iframe的服务器推送方式有可重用的JavaScript库(pushletjs)和用来在DHTML client(这里指浏览器)中接收事件的HTML(pushlethtml)。pushlethtml实现了一个隐藏的iframe来接收来自 server的消息它的父页面要实现一个名为push()的方法做为来自服务器端的JavaScript回调。在pushletjs中实现了这个方 法可以为所有的浏览器客户端所重用。如果选择使用基于AJAX长轮询的方式则有可重用的JavaScript库(ajax—pushletis)。 不管使用哪种方式只需在客户端实现一个onData()的JavaScript函数就能实现个性化的操作处理服务器推送过来的数据。 Client端Java类JavaPushletClient和JavaPushletClientListener负责在Java client中接收事件。 23 Pushlets优点 与基于CORBARMI的Java applet解决方案相比Pushlets具有以下一些优点。 1直接与浏览器中的DHTML集成服务器产生的数据可以立即发送到浏览器的页面内容中。HTML的所有布局均可应用。 2标准的HTTP端口和协议消息和蹦ICORBA使用非标准端口(相对HTTP标准端口而言)遇到“防火墙”、“禁止回调’’、“禁止接收UDP数据”的浏览器安全限制时可能无法工作。 3客户端负载基于CoRBA蹦I的Java applet使客户端在启动时更加沉重并消耗更多的资源。 4无需额外的server消息和跚ICORBA需要单独的server产品。Pushlets理论上可以在任何server引擎上运行并具备连接管理和多线程能力。 33 F Monitor项目中的服务器推送 下面将以F Monitor系统为例具体说明如何在一个Web系统中实现服务器推送。 331 F Monitor中服务器推送的设计 服务器推送主要由三个部分组成消息、消息的发送方、消息的接受方。 F Monitor系统中的服务器推送依赖于开源项目Pushlets来实现。在Pushlets的框架中服务器推送的消息是一个名为Event的Java 类对象该对象包含了一个Map来包含消息中的具体内容以及一个String类型的Topic来表示消息的主题只有订阅了该主题的消息接受者才会收到 该消息类似于JMS的Topic。在F Monitor中不同的事件通过不同的主题发送给客户端事件的Topic命名采用层次化的树命名结构。比如 “MonitorssbfinishEvent”这个topic就表示名为ssb这个卖方机构下的finishEvent类型的事件只要订阅了 “Monitorssb”这个topic客户端就可以收到其下属的所有类型的事件消息如果订阅了“”则表示订阅所有Topic的消息。 其 次需要设计消息的发送者Pushlets支持三种不同类型的消息发送方式直接发送消息、使用事件源发送消息、使用Pushlets的协议发送消息。直 接发送方式只要调用DispatchergetInstance 0multicast 0Dispatchergetlnstance()unicast()或 DispatchergetInstance()broadcast()等方法就可以将构建好的消息以广播、多播或者单播的方式发送出去。使用事件源 发送消息的方法则需要实现一个继承于EventSource的Java类通过在配置文件中声明的方式由Pushlets框架来统一管理事件源这种发 送方式比较适用于需要定时发送事件的发送源。使用Pushlets协议发送消息则提供了一种可以在Pushlets线程之外使用Pushlets协议发送 消息的方式系统可以在任何Java应用中实现服务器推送。在F Monitor系统中直接发送是比较合适的方式因为我们的事件来源于所监测的系统FF Monitor随时可能需要推送事件给浏览器因此事件的发送是随时的而不是定时的因此直接发送的方式比使用事件源定时发送的方式更适合于F Monitor的系统。 有 了消息的发送者接下来需要设计消息的接收者。接收者需要申明其接受消息的格式(JavaScript、XML、Java序列化对象三种格式)和其订阅的 消息Topic。在我们的F Monitor系统中将使用基于AJAX的浏览器客户端作为接受者。Pushlets提供了一些可重用的JavaScript文件支持DHTML和 AJAX的客户端(主要是ajax—pushletjspushletjs和pushlethtml)。ajax—pushletjs提供了浏 览器端的JavaScript库实现基于AJAX的服务器推送。只需将这些文件集成到我们的系统中就能很方便的实现服务器推送的接收方。 332 F Monitor中服务器推送的具体实现 3321系统消息的实现 在 F Monitor中服务器推送的事件都是Event对象不同的事件具有不同的Topic和Map属性。需要说明的是Topic的结构设计如上-d,节 所说Topic是个树状的结构F Monitor中将Topic的结构划分为机构名称、消息类型、货币对三个层次具体结构如图37所示。一个典型的Topic是这 样MonitorSSBFinishEventUSDARS。 3322消息发送方(服务器端)的实现 将pushletjar文件置于F Monitor项目的web文件夹下同时在webxml文件中声明pushlet的servlet。 消息的发送方在服务器端实现以下代码只需在需要推送消息的时候调用该代码就能将消息发送到指定的Topic上。 3323消息接收方(浏览器端)的实现 在html文件中引入pushlets提供的客户端支持文件ajax-pushierjs。 34本章小结 在 本章中介绍了服务器推送技术的概念和原理及其两种比较常见的实现方案。并且从实际应用角度出发研究它适合何种项目以及会带来的好处。另外还介绍 了一个开源的服务器推送框架Pushlets包括它的架构和特点因为在F Montior中将使用这个开源项目。最后详细介绍了F Monitor项目中如何 使用Pushlets实现服务器推送包括其设计与具体实现。通过本章的介绍我们对服务器推送的技术以及其在实际项目中的应用有了比较清晰的认识。 Related posts: 基于服务器推送和事件流处理技术的实时Web系统研究-摘要 母版页中引用图片、外部js、css文件的路径问题 基于服务器推送和事件流处理技术的实时Web系统研究-第2章项目简介 基于服务器推送和事件流处理技术的实时Web系统研究-第1章绪论 asp.net 即时消息提示
http://www.dnsts.com.cn/news/70954.html

相关文章:

  • 网站管理员容易做吗在哪建设网站
  • 榆林市建设局官方网站漳州手机网站建设公司哪家好
  • 做网站排名赚钱吗网址浏览器
  • 晋中网站设计wordpress导入数据库后出现乱码
  • 建站平台排行网站内链优化
  • 个人公司网站怎么做大连网站制作需要多少钱
  • 网站首页怎么制作网站建设步骤列表图片
  • html5期末大作业个人网站制作苏州住房与城乡建设部网站
  • 手机商场网站制作wordpress 鼠标特效
  • 用电脑建立网站城阳建设局网站
  • 华为做网站seo网站建设
  • 网站多久备案一次吗wordpress图片分页
  • 广告设计公司英文介绍长春seo公司
  • 网站手机页面做多大做ppt卖给网站
  • wordpress源码沈阳免费seo关键词优化排名
  • 做网站是否用数据库推广用哪个平台效果好
  • 健身网站建设ppt网站链接怎么做
  • 网站主题有哪些内容湖北建设银行网站首页
  • 客户为什么需要建站服务网站申请注册 免备案
  • 友情链接举例沧州seo包年平台排行榜
  • 河南郑州网站建设公司wordpress 框架选择
  • 海南网站建设制作深圳最好的做网站
  • 网站图标素材打鱼在线游戏网站建设
  • 网站策划方案书门户网站开发 南宁
  • 自己做的网站转成二维码360建站公司
  • 网站这么上百度安徽省住房与城乡建设网站
  • 郑州高端网站建设怎么样小白做电商从什么做起
  • 网站服务器名是什么宜昌云网站建设
  • 有没有跟一起做网店一样的网站如何禁用wordpress播放器
  • 地勘网站建设方案北京家装排名前十名的公司