`
txf2004
  • 浏览: 7044549 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

白话 Ajax 及其入门基础(2)

阅读更多

四、常见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" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<?php
//生成必要的JavaScript
$xajax->printJavascript('../xajax/');
?>

<title>XAJAX 用户注册</title>
<style type="text/css">
#formWrapper{color: #111111; background-color: rgb(200,200,200); width: 360px;}
#title{color: #FFFFFF; text-align: center; background-color: #000000; }
#formDiv{padding: 20px;}
.submitDiv{ margin-top: 10px; text-align: center; }
.errorSpan{ color:red;}
</style>

<script type="text/javascript">
<!--//提交表单
function submitSignup()
{
xajax.$('submitButton').disabled=true;
xajax.$('submitButton').value="验证中...";
xajax_processForm(xajax.getFormValues("signupForm"));
return false;
}
//-->
</script>

</head>

<body>

<form id="signupForm" action="javascript:void(null);" onsubmit="submitSignup();">
用户名:<input type="text" name="username" value="">&nbsp;
<input type="button" name="check" value="Check Only one" onClick="submitSignup();">
<input type="submit" id="submitButton" name="submit" value="Submit">
</form>

<div id="usernameInfo" class="errorSpan">&nbsp;</div>

</body>
</html>

大家看到了这段代码前边的包含语句了吧:require_once ("../xajax/xajax.inc.php")。xajax.inc.php就是定义xajax等相关类库的文件,这个文件里还包含了大量的javascript脚本文件和其他的常数定义等。Xajax类有一条自己的属性和方法,接管和封装了原始的Ajax的行为和方法,用于处理用户的事件和页面文档对象的属性和外观。
Ajax框架有它自己的好处,但是,目前由于Ajax框架太多,各有各的优点和缺点,特别是对PHP语言,我们很难在众多的框架中选中一个最适合我们自己的项目的框架。框架太多加大了交流的成本。框架本身在降低了代码复杂度的同时,也带来了学习的成本。不像.NET,背靠财大气粗的公司,就一套程序库,一套通用的IDE,熟练一门语言(比如C#),就可以开发Web和桌面应用。
最后还要注意一下,Ajax并不是万金油,任何项目都想用一下。Ajax目前大多数应用在数据校验等应用上,在项目中用的时候请慎重考虑。

张庆(网眼)http://blog.why100000.com
2008-3-24

分享到:
评论

相关推荐

    白话c++入门自学的好书

    总的来说,《白话C++入门自学的好书》以其易懂的语言和丰富的实例,旨在帮助初学者建立起坚实的基础,为他们在C++的世界里开启一段愉快的学习旅程。无论是对计算机科学感兴趣的学生,还是想要转行的职场人士,都能...

    c++入门:《白话C++》

    10. **C++11及更新标准**:《白话C++》可能还会涵盖C++11及其后续版本的新特性,如lambda表达式、右值引用、auto关键字、类型推断等,这些现代C++特性让编程更加简洁和高效。 通过《白话C++》这本书,读者不仅可以...

    白话C++ 轻松入门C++

    对于计算机,也许你是老鸟,也许你是菜鸟……   但不管怎样,如果你此时此地你要学习编程,那么你应该多多少少知道点什么叫硬件什么叫软件——反正我不管你懂不懂,为了面子,我很不乐意你问我什么叫硬件什么叫...

    07 白话容器基础(三):深入理解容器镜像.pdf

    07 白话容器基础(三):深入理解容器镜像.pdf

    08 白话容器基础(四):重新认识Docker容器.pdf

    08 白话容器基础(四):重新认识Docker容器.pdf

    白话C++.,非常好的C++入门级教程

    《白话C++》是一本非常适合初学者的C++教程,其主要目标是用通俗易懂的语言介绍C++编程的基础知识,帮助读者快速进入C++的世界。C++是一种强大而灵活的面向对象编程语言,广泛应用于系统软件、游戏开发、应用软件...

    SVM支持向量机白话入门(上)

    支持向量机(SVM,Support Vector Machine)是一种在机器学习领域广泛应用的监督学习模型,由Cortes和Vapnik于1995年提出。...理解和掌握SVM的基本原理及其背后的统计学习理论,对于解决实际问题具有重要意义。

    MoreWindows白话经典算法之七大排序第2版(高清)

    ### 更多Windows白话经典算法之七大排序第2版(高清) #### 一、概览 本书《更多Windows白话经典算法之七大排序第2版》是一部深入浅出讲解七种经典排序算法的著作,旨在帮助读者理解并掌握冒泡排序、直接插入排序...

    白话C++

    白话 C++ 第二学堂 适合入门级C++的学习,比较全的C++细节知识

    白话c++(绝对经典)

    总之,《白话C++》是一本精心编写的C++入门教材,它以其独特的“白话”风格,让编程学习不再枯燥乏味。无论你是编程新手还是寻求进阶的开发者,都能从中受益匪浅,逐步成长为熟练掌握C++的编程大师。

    子平真诠白话解释.doc

    子平真诠白话解释 子平真诠白话解释是对《子平真诠》书中语言的白话形式记录。《子平真诠》书中语言虽接近现在,但也有不少生涩的地方;因此,需要将其语义以现在白话形式记录下来,方便自己日后翻看。 子平真诠...

    白话机器学习的数学.docx

    白话机器学习的数学 机器学习是一种人工智能的方法论,通过让计算机自主学习数据中的规律和模式,从而完成特定的任务。机器学习有监督学习和无监督学习两种类型。在监督学习中,我们向模型提供带有标签的训练数据,...

    《白话C++》适合初学者

    《白话C++》是一本非常适合初学者入门的编程书籍,其主要目标是用通俗易懂的语言教授C++编程知识,让学习者在轻松愉快的氛围中掌握这门强大的编程语言。C++作为一门静态类型、编译型、并发型且支持面向对象编程的...

    08 _ 白话容器基础(四):重新认识Docker容器1

    08 | 白话容器基础(四):重新认识Docker容器08 | 白话容器基础(四):重新认识Docker容器08 | 白话容器基础(四):重新认识Docker容

    白话中台战略-中台是个什么鬼.pdf

    白话中台战略-中台是个什么鬼.pdf白话中台战略-中台是个什么鬼.pdf白话中台战略-中台是个什么鬼.pdf白话中台战略-中台是个什么鬼.pdf白话中台战略-中台是个什么鬼.pdf白话中台战略-中台是个什么鬼.pdf白话中台战略-...

    《2008版 白话c++》

    《2008版 白话C++》是一本针对初学者编写的C++教程,旨在帮助非软件专业背景的读者快速入门编程世界。作者采用通俗易懂的语言,摒弃了复杂的术语,使得C++这一高级编程语言变得更加平易近人。这本书的特色在于其深入...

    白话机器学习的数学-立石贤吾-源代码.zip

    白话机器学习的数学-立石贤吾-源代码.zip

Global site tag (gtag.js) - Google Analytics