最小化数据传输——在客户端存储数据
作者 佚名技术
来源 NET编程
浏览
发布时间 2012-05-25
将程序输出为其他的语言是程序员喜爱的事情之一,在WEB上我们有 两个不同编程环境:客户端(浏览器)和服务器端,根据HTTP协议的定义, 我们可以在编写在客户端输出其他语言的服务端程序,我们选择了作为服 务端语言、javascript作为客户端输出。在本问中我们将向您演示这样用 该方案把数据存储在客户端,并且在诸如:聊天室、新闻系统或其他您想 实现的应用上达到服务端和客户端(浏览器)的最小的数据传输。 要求以下支持: PHP4 JavaScript Frames 主要思想: 我们一直试图用PHP开发一个基于HTTP协议的聊天室(HTTP CHAT ROOM), 尽管对聊天来说HTTP协议并不是个好协议,但是它可以不受防火墙或代理影响, PHP完全可以实现该功能而不必使用JAVA APPLETS,对于聊天室主要有两个问题: 第一、由于IE 不支持SERVER PUSH 技术,所以我们只有用CLIENT PULL技术(既 客户端自动刷新),第二个问题就更深一层了:因为该思想是在客户端刷新,所以服 务端每次必须传送所有的消息,这意味着大量的数据传输,这也正是聊天室延迟的主 要原因,本文试图解决该问题: 使用框架技术(frames) 你能够刷新指定页面,而不必重新装载别的页面,这可 以减少服务/客户端(C/S)数据传输量。我们的模型就是基于该方案。 "master"文件:定义框架结构 "loader"页面:导入数据 "display"页面:显示数据 在该方案,"loder"框每"x"秒自动刷新一次——我们的思想是把数据存储在"master" 文件内,这样"loder"页面只要向服务端请求客户端所没有的数据就可以了我们使用时间戳标(timestamp) 记每个消息来决定那些消息必须传给客户端那些不必传输。我们使用PHP4。0的会话管理(session) 存储客户端的最后更新的时间戳(last timestamp)以使时间戳对服务端和客户端均可见。当"loader"文件 从"master"文件收到数据(注意:"master"文件很大,但是它只传送一次)时,就刷新显示页("diaplay") 而"display"页只是简单的调用"master"文件的名为"displaymsgs()"的javascript 函数显示消息。该函数动态显示 存储在"master"文件的数据,以下是大体流程图: 1。浏览器请求"master"页(框架),"master"页从服务器端传送到客户端(浏览器),然后"master" 文件生成框架,并且将"loader"和"display"页调到客户端。 2。在服务端,"loader" 文件将分析:如果客户端没定义"timestamp" session 变量,"loder"文件将 从服务端得到所有数据,并生成javascript代码将数据存入"master"文件,然后将"timestamp"变量存为 session 变量。 3。"loder"页面生成javascript 代码刷新 "display"页面。 4。刷新请求使得"display"页面调用"diaplaymsgs()"javascript 函数显示数据 5。每隔"x" 秒回到步骤2 我们可以该思想如下: ======= |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: 在PHP中执行系统外部命令下一篇: 怎样在php中使用PDF文档功能
关于最小化数据传输——在客户端存储数据的所有评论