您现在的位置: 中国男护士网 >> 考试频道 >> 计算机等级 >> 二级辅导 >> VFP >> 辅导 >> 正文    
  克服VFPb-s编程缺点的一些方法 【注册男护士专用博客】          

克服VFPb-s编程缺点的一些方法

www.nanhushi.com     佚名   不详 

  纯b/s以“请求-响应”的方式进行工作,browse端只有不断向web server端请求新的网页,才能进行数据更新,因此,browse端具有被动性和滞后性,无法及时获取实时的数据及其改变情况,而且即使网页中仅有部分数据发生了变化,server端也必须重新发送整张网页,从而加重了服务器、网络的负担,降低了数据传输、应用的效率。如何克服这个b/s模式的最大缺陷,堵住那些说vf不能很好做b/s的臭嘴,就是下面要介绍的一些方法: 

  引入数据推送技术,实现browse中的网页自动粒状更新

  这种push技术就是由server端主动发送各种已经更新的数据给browse,不必发送完整的网页,browse端根据所接受到的数据对网页进行局部的更新。 

  为此需要在server端编制vf的数据推送程序,在browse端的网页嵌入数据接受程序。另外,如果考虑browse端的操作系统和浏览器具有的不确定性,也就是所谓的跨平台应用,数据就用XML封装。 

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

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

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

  c、建立browse连接列表(建立已经登录的用户列表);

  d、如browse断开连接,则从连接列表中删除该连接;

  e、server端更新数据的采集、XML封装;

  f、server推送数据到所有的在线的(已经连接的)browse端。 

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

  a、发送数据以XML封装;

  b、发送数据以ASCII字符0作为结束标识;

  c、推送程序的监听端口应在 1024 以上;

  其中a、b规定了推送与接受之间的数据传输格式,c为Flash的安全措施。 

  3、数据接受程序的开发技术

  开发web嵌入式数据接受技术,主要有两种方法: Flash Application(以后简称FA) 和 Java Applet。使用 Flash 中 Action Script 开发的应用程序就是FA,与 Java Applet 相比,FA具有体积小(一般只有几KB)、插件普及率高、对browse端的要求低等的特点。 

  针对不同的操作系统和浏览器,Flash具有相应的插件,保证了FA能跨平台运行。Flash内建的 XMLSocket 对象实现了browse端的socket,允许基于FA的browse端数据接受程序与server端的数据推送程序之间建立基于socket的持续连接,并通过该连接进行双向的无限制的数据交换。 

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

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

  a、创建XMLSocket对象;

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

  c、调用XMLSocket对象的connect方法,与server建立连接;

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

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

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

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

  vf 7.0 以后就支持XML,可以直接把表中数据导出为XML。由于我们考虑的是粒度更新,所以不把表或游标整个推送,简单些就直接用文本合并等方法,定义形如“<标记名>”的标记,封装推送的数据即可。例如:

  <标记名 属性1="属性1值" 属性2="属性2值"……/> 

  b、vf数据推送程序

  vf 的版本必须至少是6.0 SP3 以上,这样才支持com,建议使用8.0。

  当数据发生变化时,数据库事件就会产生,这时可以把变化的数据进行XML封装,并根据已经登录的用户列表,推送数据到brower端。 

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

  这里给出两个关键的事件响应函数(其它的就简单了,省略):

  // 连接函数

  on(release)

  {

  // 创建 XMLSocket

  listener = new XMLSocket();

  // 设置事件响应函数

  listener.onXML = listenerOnXML;

  // 连接数据推送程序

  listener.connect(主机,端口);

  }

  // 推送数据到达brower时的onXML事件响应函数

  function listenerOnXML(src)

  {

  // 注意:名称与值应该对应!

  属性1 = src.childNodes[0].attributes.属性1

  相关链接:

  2008年下半年全国计算机等级考试报名信息汇总

  更多信息请访问:计算机等级考试站 计算机等级考试在线题库 计算机等级考试论坛

 

文章录入:杜斌    责任编辑:杜斌 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     

    联 系 信 息
    QQ:88236621
    电话:15853773350
    E-Mail:malenurse@163.com
    免费发布招聘信息
    做中国最专业男护士门户网站
    最 新 热 门
    最 新 推 荐
    相 关 文 章
    没有相关文章
    专 题 栏 目

      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)                            【进男护士社区逛逛】
    姓 名:
    * 游客填写  ·注册用户 ·忘记密码
    主 页:

    评 分:
    1分 2分 3分 4分 5分
    评论内容:
  • 请遵守《互联网电子公告服务管理规定》及中华人民共和国其他各项有关法律法规。
  • 严禁发表危害国家安全、损害国家利益、破坏民族团结、破坏国家宗教政策、破坏社会稳定、侮辱、诽谤、教唆、淫秽等内容的评论 。
  • 用户需对自己在使用本站服务过程中的行为承担法律责任(直接或间接导致的)。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表网友个人观点,与本网站立场无关。