日期:2014-05-16  浏览次数:20689 次

Ajax 及其入门基础(二)
注意Ajax本身是一种浏览器端技术,它和Web服务器端采用什么脚本书写代码是没有关系的。比如我们把Client.htm的语句send_request(‘server.php’, username)换为send_request(‘server.asp’, username),再相对应的建立server.asp文件,内容为:
<%
    dim username
    username = request(”username”)

    if username=”Thomas” then
     response.write(”用户名” & username & “已经被注册,请更换一个用户名”)
    else
     response.write(”用户名” & username & “尚未被使用,您可以继续”)
    end if
    %>



    做了这样的改变后,在浏览器端,用户看到的效果是一模一样的。

    四、常见Ajax编程框架

    既然上述Ajax框架已经能工作了,为什么还有那么多的框架呢?

    随着页面的复杂,可能需要书写大量的Javascript脚本来对页面中的DOM对象进行控制,工作量和复杂度会大大增加。Ajax编程框架通常利用面向对象的方法,对一些基本的对象和行为及其复杂性进行了合理的封装,建造了一套有自己特色的类库,并且考虑了效率和可扩充性等优点。我们在开发时,可以使用较少的、更清晰的代码,完成自己的工作。也使程序员有更多的时间和精力考虑业务逻辑本身,而不是与一堆脚本纠缠在一起。

    框架都是与后台脚本相关的。通过后台脚本编程,我们可以不必书写大量的Javascript脚本就能构建浏览器兼容的Ajax应用。比如,我使用一个比较流行的PHP xAjax框架,对前边的示例程序进行了改写:  <?php
      require_once ("../xajax/xajax.inc.php");

      //服务器处理函数
      function processForm($aFormValues)
      {
       $objResponse = new xajaxResponse();
       $bError = false;

       //清空错误信息
       $objResponse->addClear("usernameInfo", "innerHTML");

       //判断账号
       if (trim($aFormValues['username']) == "")
       {
        $objResponse->addAppend("usernameInfo", "innerHTML", "Please Input user name.");
        $bError = true;
       }
       else
       {
          if(trim($aFormValues['username'])=="Thomas")
           $objResponse->addAppend("usernameInfo", "innerHTML", "Has been registed");
          else
           $objResponse->addAppend("usernameInfo", "innerHTML", "Has not been registed");
        $bError = false;
       }

       if (!$bError)
       {
        $sForm .="<div>账号:" .$aFormValues['username']. "</div>\n";
       }
       else
       {
        $objResponse->addAssign("submitButton", "value", "Submit");
        $objResponse->addAssign("submitButton", "disabled", false);
       }

       return $objResponse;
      }

      //构造对象
      $xajax = new xajax();

      //注册处理函数
      $xajax->registerFunction("processForm");

      //接管HTTP请求
      $xajax->processRequests();
    ?>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"