克服VFPb,第1张

克服VFPb,第2张

B/s以“请求-响应”的方式工作,浏览端只能通过不断向web服务器端请求新的网页来更新数据。所以浏览端是被动的、滞后的,无法及时获取实时数据及其变化。而且,即使网页中只有部分数据发生了变化,服务器端也要重新发送整个网页,从而增加了服务器和网络的负担,降低了数据传输和应用的效率。如何克服这种b/s模式的缺陷,堵住那些说vf做不好b/s的臭嘴,下面要介绍一些方法:

引入数据推送技术,实现网页在浏览时的自动粒度更新。

在这种推送技术中,服务器端主动发送各种更新数据给浏览,而不是发送一个完整的网页,浏览端根据接收到的数据在本地更新网页。

因此,需要在服务器端编写vf的数据推送程序,在浏览端的网页中嵌入数据接受程序。另外,如果考虑到浏览端的操作系统和浏览器的不确定性,也就是所谓的跨平台应用,那么数据就会封装在XML中。

1.推送数据的vf程序流程

a、在特定端口监听browse的连接请求(或检测用户是否请求登录);

b、浏览端请求建立连接(登录);

c、建立浏览连接列表(建立登录用户列表);

d、如果浏览断开,从连接列表中删除该连接;

E.服务器端更新数据的收集和XML封装;

F.服务器将数据推送到所有在线(连接的)浏览终端。

2.数据推送程序的基本规则(基于Flash的web嵌入式数据接收程序)

a .用XML封装发送数据;

b .发送以ASCII字符0作为结束标志的数据;

C.推送程序的监听端口要在1024以上;

a和B指定了推送和接收之间的数据传输格式,C是Flash的安全措施。

3.数据接收程序的开发技术。

开发web嵌入式数据接受技术主要有两种方法:Flash应用程序(FA)和Java Applet。Flash中动作脚本开发的应用是FA。与Java小程序相比,FA具有体积小(一般只有几KB)、插件普及度高、对浏览要求低的特点。

根据不同的操作系统和浏览器,Flash有相应的插件,保证FA可以跨平台运行。Flash内置的XMLSocket对象实现了browse的Socket,允许基于FA的browse的数据接收者和服务器的数据推送者建立一个基于socket的连续连接,通过这个连接进行双向、无限制的数据交换。

FA包含在Flash动画中,通过或标记嵌入到网页中,与网页一起从服务器端下载到浏览端的浏览器中。在fabrowse浏览器中,通过XMLSocket向服务器上的数据推送程序发送连接请求。连接建立后,FA可以自动从服务器接收XML格式封装的数据,并分析所需信息,在浏览器中刷新网页。

建立数据接收程序的基本步骤是:

a .创建一个XMLSocket对象;

b .设置XMLSocket对象的事件响应函数;

C.调用XMLSocket对象的connect方法与服务器建立连接;

d .解析XMLSocket对象的onXML事件响应函数中的数据,并在浏览器中更新网页。

4.asp/flash+vf+vf三层应用实例

完整的例子太庞大了,只说关键的东西。

a、构建XML的数据封装格式

vf 7.0以后支持XML,表格中的数据可以直接导出为XML。因为我们正在考虑粒度更新,所以我们不推送整个表或游标。简单来说,我们可以使用文本合并等方法定义一个类似“”的标记,封装推送的数据。例如:

b、vf数据推送程序

vf版本必须至少为6.0 SP3或更高版本才能支持com。建议使用8.0。

当数据发生变化时,会发生数据库事件。此时可以将变更后的数据封装在XML中,根据登录用户列表将数据推送到brower。

c、基于Flash的web嵌入式数据接收处理程序

下面是两个关键的事件响应函数(其他的很简单,省略了):

//连接功能

开(释放)

{

//创建XMLSocket

listener = new XMLSocket();

//设置事件响应函数

listener . on XML = listener on XML;

//连接数据推送器

Listener.connect(主机,端口);

}

//当推送数据到达浏览器时onXML事件响应函数

函数listenerOnXML(src)

{

//注意:名称和值要对应!

1 = src.childnodes [0]。属性. 1

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 克服VFPb

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情