基于AJAX的网页无刷新技术

来源 :吉林画报·新视界 | 被引量 : 0次 | 上传用户:bobshen88888
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  【摘要】人们在上网浏览网页切换页面时经常出现这种情况,即页面中大部分内容是不变的,只有一少部分需要更新。从技术上来说,如果重新载入这些不变的数据,就会浪费网络和服务器的资源,同时也会延长用户的等待时间。因此近年来,网页的无刷新技术得到了比较广泛的应用。本文分析了基于AJAX的网页无刷新技术,然后给出了应用该技术的主要代码。
  【关键词】AJAX;ASP;JS
  【中图分类号】TP393【文献标识码】A
  【文章编号】1007—4309(2010)10—0084—2
  
  一、 总述
  
  伴随着计算机网络等信息技术的发展,通过互联网获取信息是现在人们认识世界、了解世界的主要方法之一。人们无论在单位还是在家里都可以通过上网得到及时准确的信息。人们在浏览网页时总是希望打开的速度能够像访问本机的硬盘数据一样快。但是目前,由于用户数量多、网络的带宽有限等原因,用户打开网页的时间还是比较长的。于是人们通过各种技术手段来缩短打开网页的时间。本文将要分析的就是一种基于AJAX技术的网页无刷新技术,这种技术可以使用户在一些情况下切换页面时极大地提高访问速度。
  网页无刷新技术是指在进行页面的切换时,只从网站的服务器载入发生变化的数据(这在浏览网页时是经常遇到的情况),而不变的内容无须重新载入。对于传统方法,在切换页面时,所有内容都需要从服务器端重新载入到本地的计算机,这样浪费了大量的网络带宽,加重了服务器的负担,用户也需要花费更多的等待时间。AJAX(Asynchronous JavaScript and XML)包括了XHTML和CSS、XML和 XSTL、Javascript、DOM(Document Object Model)、XMLHttpRequest等技术,实际上是多种技术的综合。XHTML和CSS能够实现标准化呈现;XML和XSTL能够进行数据交换与处理;Javascript能够绑定和处理所有数据;DOM能够实现动态显示和交互;XMLHttpRequest能够对对象进行异步数据读取。事实上,在没有提出AJAX之前,业界只是单独地使用上述技术,而没有对其进行综合使用。随着网页无刷新技术的应用及其广泛发展,人们也开始逐渐使用AJAX了。
  
  二、相关技术介绍
  
  传统的Web应用采用同步交互过程,在这种情形下,用户首先向HTTP服务器触发一个行为或请求的呼求。反过来,服务器执行某些任务,再向发出请求的用户返回一个HTML页面。这种用户体验是不连贯的,服务器在处理请求的时候,用户多数时间处于等待的状态,屏幕内容也是一片空白。
  AJAX与传统Web的应用是不同的,它采用了异步交互过程。AJAX能够消除网络交互过程中的处理—等待—处理—等待的缺点。这是因为,它在用户与服务器之间引入了一个中间媒介。用户的浏览器在执行任务时即装载AJAX 引擎。AJAX引擎用JavaScript语言编写,通常藏在一个隐藏的框架中,它负责编译用户界面及与服务器之间的交互。AJAX引擎是独立于用户与网络服务器间的交流的,它允许用户与应用软件之间的交互过程异步进行。现在,可以用Javascript调用AJAX引擎来代替产生一個 HTTP的用户动作,可以将不需要重新载入整个页面的需求,如页面导航、数据校验、内存中的数据编辑交给AJAX来执行。
  通过XML可以规范地定义结构化数据,使网上传输的数据和文档符合统一的标准。用XML表述的数据和文档,可以很容易地让所有程序共享。
  DOM是一组API,是提供给HTML和XML使用的,它提供了文件的表述结构,使用它也可以改变其中的内容和可见物。脚本语言要想同页面进行交互,需要通过DOM才能实现。
  
  三、无刷新网页的实现
  
  下面就以为某公司建立的内部网站中的一个无刷新网页为例说明一下AJAX的应用。公司OA中的即时通讯原来采用窗口的定时刷新自动获取消息等信息,但采用这种技术的缺点很明显,不仅性能低下,而且由于需要频繁刷新页面,用户也不太满意。采用AJAX技术后得到了很好的改善。实现此功能的所有文件包括:login.asp、online.asp、 getonlineuser.asp。
  login.asp程序执行一般的登陆操作,并将自身添加进在线用户表(onlineuser)中。用online.asp页来显示用户在线情况,主要显示在线人数、在线人员列表、离线人数、离线人员列表。主要代码如下:
  Dim rv
  (以下代码是在页面加载时,生成所有用户列表的xml片段。)rv=rv & ""
  strSql="Select * From Userinf Order By username"
  Set rs=conn.execute(strSql)
  While Not rs.Eof
   rv=rv & ""
   rs.movenext
  Wend
  rv=rv & ""
   rs.close:Set rs=Nothing
  var xmlDom
   var xmlDom = new ActiveXObject("Microsoft.XMLDOM")
  (函数initList(),加载刚才生成的所有用户列表)
  function initList()
  {
  xmlDom.async=false;
  xmlDom.loadXML("");
   }
  (函数updateList(),刷新在线情况显示)
  function updateList()
   {
  var root = xmlDom.documentElement;
   var obj=root.selectNodes("UserName[@On=’true’]");
  onlinecount.innerHTML=obj.length;
  var nRow=online.rows.length;
  (清除当前所有列表)
   for(j=0;j <=10;j++)
  {
  online.deleteRow();
  }
  (刷新在线列表)
   for(var i=0;i<=10;i++)
  {
  var b=online.insertRow();
   var c=b.insertCell();
  c.innerHTML=""+obj[i].getAttribute("Value")+"";
  }
  (刷新离线列表)
  obj=root.selectNodes("UserName[@On=’false’]");
  offlinecount.innerHTML=obj.length;
  var nRow=offline.rows.length;
   for(j=0;j<=10;j++)
  {
  offline.deleteRow();
   }
  for(i=0;i <=10;i++)
  {
  var b=offline.insertRow();
   var c=b.insertCell();
  c.innerHTML=""+obj[i].getAttribute("Value")+"";
  }
  getOnlineUser();
  getonlineuser.asp文件内容:
  Dim rv
  Dim rs,strSql
  (更新当前用户的在线状态)
  strSql="Update onlineuser Set lastdate=’" & now & "’ Where userid=’" & username & "’" conn.execute(strSql)
  (刪除无活动用户)
  strSql="delete from OnlineUser where datediff(’n’,lastdate,now())>2"
  conn.execute(strSql)
  (获取在线用户)
  strSql="Select * From OnlineUser Order By userid"
  Set rs=conn.execute(strSql)
  rv="" & vbCrlf
  rv=rv & "" & vbCrlf
  rv=rv & "" & vbCrlf
  While Not rs.Eof
  rv=rv & "" & trim(rs(1)) & "" & vbCrlf
   rs.movenext
  Wend
  rv=rv & "" & vbCrlf
  rs.close:Set rs=Nothing
   rv=rv & "" & vbCrlf
  (返回xml文件至客户端给online.asp文件中的getOnlineUser()函数) Response.ContentType = "text/xml"
   Response.CharSet = "GB2312"
  response.write rv
  
  四、结论
  
  通过以上的分析及实际应用,对于开发人员、终端用户、ISP来说,AJAX是大有益处的。
  第一,减轻服务器的负担。“按需取数据”是AJAX的原则,这不仅可以将冗余请求减到最少,而且也能最大程度地减少服务器的负担。
  第二,可以使用户的等待时间减少。尤其是不会像Reload事件那样,当要读取大量数据的时候,就会出项白屏的现象。AJAX使用XMLHTTP对象发送请求并得到服务器响应,在不重新载入整个页面的情况下更新页面。因此在读取数据的过程中,用户所面对的不再是白屏,而是原来的页面内容。当数据接收完毕之后才更新相应部分的内容。这种更新的速度非常快,几乎就是一瞬间,用户几乎感觉不到。
  第三,使效率大大提高。可以利用客户端闲置的能力来处理以前一些服务器负担的工作,从而减轻服务器和带宽的负担。
  第四,可以调用外部数据。AJAX技术也不是完美的,也存在着一些突出的缺陷。AJAX大量地使用了取决于浏览器支持的AJAX和JS(Javascript)引擎。因此,使用 AJAX就必须要测试针对各个浏览器的兼容性。AJAX在更新页面内容的时候,并没有对整个页面进行刷新,因此后退功能在网页中是无效的,还有一些用户经常弄不清楚数据是否已经被更新过,这就需要在明显位置具有“数据已更新”的提醒字样,起到提醒用户的作用。在对流媒体的支持方面,相比JavaApplet和FLASH来说,AJAX也是较差的。
  
  【参考文献】
  [1]Nicholas C.Zakas,Jeremy McPeak,Joe Fawcett著,徐锋,吴兰陟译. Ajax高级程序设计[M]. 北京:人民邮电出版社,2006.
  [2]顾兵.XML实用技术教程[M].北京:清华大学出版社,2007.
  [3]刘好增,张坤.ASP动态网站开发实践教程[M].北京:清华大学出版社,2007.
  【收稿日期】2010年9月5日
  【作者简介】李凤祥(1972— ):男,辽宁凌源人,沈阳铁路机械学校信息部讲师,研究方向:计算机教学。
其他文献
在施工企业安全生产标准化的原则指导下,施工企业安全生产差异化管理应运而生,所谓差异化就是不同点和特殊性,施工企业安全生产差异化管理就是企业针对施工安全生产而采取的
同仁法则:把员工当合伙人.美国一个家庭用品公司把销售人员称作“同仁”.公司非基层职位有90 %以上是公司人员填补的,公司400名部门负责人中,只有17人是从外面招聘的.公司股
本刊讯 3月5日,中共中央台办、国务院台办主任张志军应邀出席十二届全国人大二次会议台湾代表团全体会议.会上,张志军听取了台湾团代表意见,介绍了去年对台工作进展和今年的
邓小平理论宗教观的构成包括三个有机联系而又统一的部分:第一部分是他本人在各个不同时期和场合,从不同角度和侧面对宗教、宗教问题和宗教工作所直接阐述的一些基本观点、原
一、中小企业融资的概述  我们一般所说的中小企业,是与大型企业相比较而言的一个属于企业规模形态范畴中的概念,融资顾名思义就是资金的融通,宏观上来讲它是一个资金在需求者与供给者之间双向流动的过程,是企业或个人通过一定方式在金融市场上筹措或贷放资金的行为,既包括资金融入也包括资金融出。狭义的融资一般仅指的是资金的融入,企业首先要预算资金的需求量,然后再通过不同的筹资方式和渠道来得到资金,从而满足企业的
互联网和移动互联网改变许多,但对于大多数处于竞争性行业的传统企业而言,基本面未必会发生什么翻天覆地的变化。他们真正需要的是,下功夫提高自己的经营和管理水平,改善客户和服务的体验,并将其做到极致。  西班牙时尚品牌ZARA在上海的第一家门店开业时,一众经济学家、行业人士对所谓“快时尚”惊为天人,开始了众多关于模式的研究和讨论。到今天,类似的品牌如优衣库、H&M、无印良品的店面已经开到了三线城市,电商
期刊
精益建造的基本理论rn目前国内较为通用的精益建造定义为:从建筑和建筑生产的基本特征出发,基于生产管理理论、建筑管理理论以及建筑生产的特殊性,理解和管理建筑生产全过程,
日出日落,月圆月缺,花开花败,是自然的平衡,甚至冬寒夏暑也体现出造物主对平衡的精准拿捏。而平衡之于人亦意义非凡。自古有阴阳、五行、八卦之论,亦有孔子“过犹不及”之言,
魏纪中,一个标本式的人物.“中国奥委会前秘书长”、“中国奥委会前副主席”、“2000年奥申委秘书长”、“北京2008奥组委高级顾问”……一串长长的头衔向人们展示着魏纪中和