多比矢量图开发(九)-和服务器端通信
来源:互联网 发布:mac切换不了输入法 编辑:程序博客网 时间:2024/05/16 04:57
从理论上来说,多比图形不关心如何取得数据,只是取得数据后如何展现。 但是很多客户都是从VB/VC/Delphi转过来的, 所以他们对B/S的应用是如何和客户端通信的并不了解。这里简单介绍一下。
B/S结构的通讯方式一般有三种,基于AJAX的异步通讯模式,基于HTTP长连接的COMMET模式,以及Flash XMLSocket,最新的Web socket技术也可以支持效率更高通讯模式, 但是需要IE9支持。
Ajax的核心是JavaScript对象XmlHttpRequest。该对象在Internet Explorer 5中首次引入,它是一种支持异步请求的技术。简而言之,XmlHttpRequest使您可以使用JavaScript向服务器提出请求并处理响应,而不阻塞用户。
AJAX 不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的 Web 应用程序的技术。 通过 AJAX,您的 JavaScript 可使用 JavaScript 的 XMLHttpRequest 对象来直接与服务器进行通信。通过这个对象,您的 JavaScript 可在不重载页面的情况与 Web 服务器交换数据。 AJAX 在浏览器与 Web 服务器之间使用异步数据传输(HTTP 请求),这样就可使网页从服务器请求少量的信息,而不是整个页面。 AJAX 可使因特网应用程序更小、更快,更友好。iframe 是很早就存在的一种 HTML 标记, 通过在 HTML 页面里嵌入一个隐蔵帧,然后将这个隐蔵帧的 SRC 属性设为对一个长连接的请求,服务器端就能源源不断地往客户端输入数据。
关于这种技术,可以参看以下的链接。http://blog.csdn.net/fhp0917/article/details/4171818考虑到Flash播放器在我国安装的比率在95%以上,并且Flash播放器经过严格的安全测试, 使用 Flash 的 XMLSocket也是非常可行的方案。
这种方案实现的基础是:
1. Flash 提供了 XMLSocket 类。
2. JavaScript 和 Flash 的紧密结合:在 JavaScript 可以直接调用 Flash 程序提供的接口。
具体实现方法:在 HTML 页面中内嵌入一个使用了 XMLSocket 类的 Flash 程序。JavaScript 通过调用此 Flash 程序提供的套接口接口与服务器端的套接口进行通信。JavaScript 在收到服务器端以 XML 格式传送的信息后可以很容易地控制 HTML页面的内容显示。
关于如何去构建充当了 JavaScript 与 Flash XMLSocket 桥梁的 Flash 程序,以及如何在 JavaScript 里调用 Flash 提供的接口,我们可以参考 AFLAX(Asynchronous Flash and XML)项目提供的 Socket Demo 以及 SocketJS。
Javascript 与 Flash 的紧密结合,极大增强了客户端的处理能力。从 Flash 播放器 V7.0.19 开始,已经取消了 XMLSocket的端口必须大于 1023 的限制。Linux 平台也支持 Flash XMLSocket 方案。但此方案的缺点在于:
1. 因为 XMLSocket 没有 HTTP 隧道功能,XMLSocket 类不能自动穿过防火墙;
2. 因为是使用套接口,需要设置一个通信端口,防火墙、代理服务器也可能对非 HTTP 通道端口进行限制;
如果你的应用只是部署在企业的内网中,不存在跨防火墙的问题,这种方案我们强烈推荐。
- 多比矢量图开发(九)-和服务器端通信
- 多比矢量图开发指南(五)-定义矢量图元
- 多比矢量图开发教程(三)
- 多比矢量图控件开发文档(一)
- 多比矢量图开发指南(八)-图元动画
- 多比矢量图开发手册(六)-Web高级图元编程
- C#.net 地图控件开发(九) 矢量图层与绘制FeatureLayer
- 客户端和服务器端通信
- 客户端和服务器端通信
- 服务器端和android客户端通信 服务器端实现
- bluetooth开发(二)------基于rfcomm通信编程之服务器端
- 用Socket实现客户端和服务器端通信(完整版)
- java socket 客户端和服务器端互相通信(聊天)
- java socket 客户端和服务器端互相通信(聊天)
- 客户端和服务器端的通信(Socket编程)
- 安卓客户端和服务器端的通信(勘误填坑版)
- 显示栅格图层和矢量图层的属性表(AE开发)
- Silverlight开发历程—(绘制矢量图之Polyline 和 Polygon)
- 查询2个日期直接的所有日期
- BMP图像中BITMAPINFOHEADER结构
- 多比矢量图开发指南(八)-图元动画
- 开发C/S架构用各种语言的优缺点有什么?
- SQL
- 多比矢量图开发(九)-和服务器端通信
- 信号量 互斥锁 条件变量的区别
- window 多线程学习
- html5简介
- RUNTIME_CLASS(class_name) a CRuntimeClass structure
- Linux下crontab命令的用法
- Spring依赖注入(DI)的三种方式
- Android的备份服务概述
- 黑马程序员——网络编程