加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何使用Ajax技术开发Web应用程序(1)

发布时间:2020-12-16 03:22:40 所属栏目:百科 来源:网络整理
导读:作者: Jonathan Fenocchi 时间: 2005.10.25 译者: Sheneyan 英文原文: http://webreference.com/programming/javascript/jf/column12/index.html 在过去,由于为了获得新数据而不得不重新加载web页面(或者加载其他页面)导致web应用程序发展被限制。虽

  作者:Jonathan Fenocchi
  时间:2005.10.25
  译者:Sheneyan
  英文原文:
http://webreference.com/programming/javascript/jf/column12/index.html

  在过去,由于为了获得新数据而不得不重新加载web页面(或者加载其他页面)导致web应用程序发展被限制。虽然有其他方法可用(不加载其他页面),但是这些技术都没有被很好地支持而且有bug成灾的趋向。在过去的几个月里,一个过去并不被广泛支持的技术已经被越来越多的web冲浪者(web surfers??是指浏览器还是浏览者?)所接受,它给了开发者更多的自由开发先进的web应用程序。这些通过javascript来异步取得xml数据的应用程序,被亲切的称为“Ajax应用程序”(Asynchronous javascript and XML applications)。在这篇文章中,我将会解释如何通过Ajax来取回一个远程的XML文件并更新一个web page,并且随着这个系列的继续,我将讨论更多的方法,使用ajax技术将你的web应用程序提升到一个新的层次.

  这第一步就是创建一个带一些数据的XML文件。我们将这个文件命名为data.xml。它是一个简单的XML文件,而在一个真实的程序中,它会复杂许多,但对于我们的例子来说,简单明了是最合适地。

<?xml version="1.0" encoding="UTF-8"?> <root> <data> 这是一些示例数据,它被保存在一个XML文件中,并被javascript取回。 </data> </root>

  现在让我们创建一个简单的web页面包含一些示例数据。这个页面将是我们的js脚本所在,并且这个页面将会让用户们访问柄看到Ajax脚本的运行。我们把它命名为ajax.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
? "http://www.w3.org/TR/html4/strict.dtd">
<html lang="zh" dir="ltr">
? <head>
??? <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
??? <title>使用ajax开发web应用程序 - 示例</title>
? </head>
? <body>
??? <h1>使用ajax开发web应用程序</h1>
??? <p>这个页面演示了AJAX技术如何通过动态读取一个远程文件来更新一个网页的内容--不需要任何网页的重新加载。注意:这个例子对于禁止js的用户来说没有效果。</p>
??? <p id="xmlObj">
??? 这是一些示例数据,它是这个网页的默认数据 <a href="data.xml"
??? title="查看这个XML数据." onclick="ajaxRead('data.xml'); this.style.display='none'; return false">查看XML数据.</a>
??? </p>
? </body>
</html>

  注意,对于那些没有javascript的用户,我们直接链接到data.xml文件。对于那些允许运行javascript的用户,函数“ajaxRead”将被运行,这个链接被隐藏,并不会被转向到那个data.xml文件。函数“ajaxRead”现在还没定义。所以如果你要检验上面的示例代码,你会得到一个javascript错误。让我们继续并定义这个函数(还有其他的),让你能够看到ajax是如何工作的,下面的脚本要放到你的head标签里:

<script type="text/javascript"><!--
function ajaxRead(file){
? var xmlObj = null;
? if(window.XMLHttpRequest){
????? xmlObj = new XMLHttpRequest();
? } else if(window.ActiveXObject){
????? xmlObj = new ActiveXObject("Microsoft.XMLHTTP");
? } else {
????? return;
? }
? xmlObj.onreadystatechange = function(){
??? if(xmlObj.readyState == 4){
?????? updateObj('xmlObj',xmlObj.responseXML.getElementsByTagName('data')[0].firstChild.data);
???? }
??? }
??? xmlObj.open ('GET',file,true);
??? xmlObj.send ('');
? }
? function updateObj(obj,data){
?? document.getElementById(obj).firstChild.data = data;
? }
? //--></script>

(Sheneyan注:完整代码示例见 example.html ML文件见:data.xml?)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读