AJAX如何与后台交互

2016-02-19 22:26 44 1 收藏

今天图老师小编要跟大家分享AJAX如何与后台交互,精心挑选的过程简单易学,喜欢的朋友一起来学习吧!

【 tulaoshi.com - Web开发 】

  Ajax全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。Ajax技术是目前在浏览器中通过JavaScript脚本可以使用的所有技术的集合。Ajax以一种崭新的方式来使用所有的这些技术,使得古老的B/S方式的Web开发焕发了新的活力。
  Ajax技术之中,最核心的技术就是XMLHttpRequest,它最初的名称叫做XMLHTTP,是微软公司为了满足开发者的需要,1999年在IE5.0浏览器中率先推出的。后来这个技术被上述的规范命名为XMLHttpRequest。它正是Ajax技术之所以与众不同的地方。简而言之,XMLHttpRequest为运行于浏览器中的JavaScript脚本提供了一种在页面之内与服务器通信的手段。页面内的JavaScript可以在不刷新页面的情况下从服务器获取数据,或者向服务器提交数据。XMLHttpRequest的出现为Web开发提供了一种全新的可能性,甚至整个改变了人们对于Web应用由什么来组成的看法。它可以使我们以一种全新的方式来做Web开发,为用户提供更好的交互体验。
  与传统的Web开发不同,Ajax并不是以一种基于静态页面的方式来看待Web应用的。从Ajax的角度看来,Web应用应由少量的页面组成,其中每个页面其实是一个更小型的Ajax应用。每个页面上面都包括有一些使用JavaScript开发的Ajax组件。这些组件使用XMLHttpRequest对象以异步的方式与服务器通信,从服务器获取需要的数据后使用DOM API来更新页面中的一部分内容。因此Ajax应用与传统的Web应用的区别主要在三个地方:
  1. 不刷新整个页面,在页面内与服务器通信。
  2. 使用异步方式与服务器通信,不需要打断用户的操作,具有更加迅速的的响应能力。
  3. 应用仅由少量页面组成。大部分交互在页面之内完成,不需要切换整个页面。
  由此可见,Ajax使得Web应用更加动态,带来了更高的智能,并且提供了表现能力丰富的Ajax UI组件。这样一类新型的Web应用叫做RIA(Rich Internet Application)应用。
  前面是本人在网上找的一些关于AJAX介绍的资料,以帮助不了解AJAX技术的读者尽快了解AJAX技术,下面本人将会把自己在实际开发过程中用到的一些AJAX技术及技巧给大家介绍一下.
  使用AJAX技术最重要的就是创建XMLHttpRequest对象,关于如何创建该对象网上有很多资料.本人最常用的一个方法是
  function createXMLHttpRequest() {
      var xmlhttp;
      try {
          xmlhttp = new ActiveXObject('Msxml2.XMLHTTP');
      } catch(e) {
          try {
              xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
          } catch(e) {
              try {
                  xmlhttp = new XMLHttpRequest();
              } catch(e) {
                  alert("创建XMLHttpRequest对象失败!");
              }
          }
      }
      return xmlhttp;
  }
  下面本人将列出一些例子及一些通过这些例子可以学到的东西.
  下面一段代码是本人在做新增特定物品时,做验证以判断该物品是否已在数据库中存在的例子.
  input type="text" style="width:100%" class="noEmptyInput" name="segment10" value="%=segment10%" maxlength="16" onblur="do_verify();"
  function do_verify() {
      var segment10 = document.mainFrm.segment10.value;
      var inventoryItemId = document.mainFrm.inventoryItemId.value;
      //    alert(segment10)
      xmlHttp = createXMLHttpRequest();
      var url = "/servlet/com.sino.ies.inv.maintenance.servlet.ItemMaintainServlet?forward=doVerify&segment10=" + segment10 + "&inventoryItemId=" + inventoryItemId;
      xmlHttp.onreadystatechange = handleReadyStateChange;
      xmlHttp.open("post", url, true); //传递数据的方法同样有GET和POST两种,但是当方法为POST时下面的一句话就必须写
      xmlHttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
      xmlHttp.send(null);
  }
  function handleReadyStateChange() {
      if (xmlHttp.readyState == 4) {
          if (xmlHttp.status == 200) {
              if (xmlHttp.responseText == 'Y') {
                  document.mainFrm.isExist.value = 'Y';
                  document.getElementById("flag").style.display = "block"
                  document.mainFrm.segment10.focus();
              } else {
                  document.mainFrm.isExist.value = 'N';
                  document.getElementById("flag").style.display = "none"
              }
          } else {
              alert(xmlHttp.status);
          }
      }
  }
  后台代码为:
                  boolean success = itemDAO.doVerifyItem();  //doVerifyItem为验证指定物品是否在数据库中存在的主要方法,如果该物品已存在该方法将返回TRUE
                  PrintWriter out = res.getWriter();
                  if (success) {
                      out.print("Y");
                  }
                  out.flush();
                  out.close();
              }

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

来源:http://www.tulaoshi.com/n/20160219/1628336.html

延伸阅读
标签: PHP
  PHP与MySQL交互使用详解 1、创建自动连接数据库的代码,并生成一些必要的代码.我们仔细研究一下数据库的连接函数,会发现是这样的一行代码。 $link_id=@mysql_connect($hostname,$username,$password); 所以我们在include文件connect.inc中添加以下代码就可以了。connect.inc<?php$hostname='localhost'; $username='phpstar';$pa...
标签: Web开发
ajax应用越来越多,大部分ajax处理都是在前台显示1个"loading...",然后把数据提交给服务器进行处理,处理完毕后显示"处理完毕"。我们能否让ajax更加友好点,实时显示服务器处理的进度了?这在一些长时间的请求中尤其重要,比如上传文件、发送邮件、批量处理数据。答案当然是可以的,不然就不会写这个了,对吧,^_^。 存在的问题: 要解决实...
1.怎样操作剪贴板,从而实现复制、剪切与粘贴?同时判断剪贴板里边的数据是否是文本? if (!IsClipboardFormatAvailable(CF_TEXT))  return;  if (!OpenClipboard(hwndMain))  return;  hglb = GetClipboardData(CF_TEXT);  if (hglb != NULL)  {  lptstr ...
标签: FLASH flash教程
在AS3里,对XML的控制变得非常方便了,有用过AS2的读者都知道,如果我们用AS2去访问一个节点,做法是xmlObj.firstChild.childNodes[2]如果复杂的XML结构就更麻烦了,所以在AS2时需要把一系统的节点用一个值来先做替身即xmlList= xmlObj.firstChild.childNodes来降底程序的复杂程序。 AS3里使用E4X(ECMAScript for XML)来规范定义组用于处理 ...
标签: Web开发
在iframe中查找父页面元素的方法: $('#id', window.parent.document) 在父页面中获取iframe中的元素方法: $(this).contents().find("#suggestBox") 在iframe中调用父页面中定义的方法和变量: parent.method parent.value

经验教程

844

收藏

71
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部