当前位置: 首页 > 图文教程 > 网络编程 > PHP > 结合AJAX进行PHP开发之入门(3)

PHP
坏狼php学习 计数器实例代码
PHP学习一(基础)
PHP学习 运算符与运算符优先级
PHP学习 mysql
用PHP伪造referer突破网盘禁止外连的代码
php utf-8转unicode的函数
php代码出现错误分析详解
PHP伪静态写法附代码
PHP伪静态页面函数附使用方法
php下汉字转化为拼音的代码
js下函数般调用正则的方法附代码
php 前一天或后一天的日期
php 在线打包_支持子目录
php GD绘制24小时柱状图
php下检测字符串是否是utf8编码的代码
php5中date()得出的时间为什么不是当前时间的解决方法
[原创]效率较高的php下读取文本文件的代码
php文本操作方法集合比较
PHP远程连接MYSQL数据库非常慢的解决方法
PHP写入WRITE编码为UTF8的文件的实现代码

结合AJAX进行PHP开发之入门(3)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 186 ::
收藏到网摘: n/a

 添加 Sajax

  现在相册提供了基本的导航功能,目录中的图像添加了索引。下面您将看到添加 Sajax 能够改进编程和用户体验。

  这里假设您对 Ajax 有基本的了解,最好还熟悉 Sajax 的基础知识(请参阅 参考资料 中的教程)。

  Sajax、Ajax 与传统 Web 应用程序
 
  现在我们已经使用标准的 Web 开发模型开发了应用程序。两项主要功能是分页器和图像查看器,它们分别对应不同的 PHP 文件。参数作为 HTTP GET 请求传递给脚本,脚本直接向 Web 客户机返回页面。


  Web 开发社区的人都知道,Ajax 允许向服务器发出异步的辅助请求,并直接在网页中显示结果(如图 4 所示)。不幸的是,即便最简单的 Ajax 应用程序实现起来也是一项大任务。因为 Ajax不是标准化的技术,Internet Explorer 和其他浏览器(如Firefox、Safari)的实现是不同的。此外,程序员至少要编写三个函数才能实现一个功能,这三个函数是:发送 HTTP 请求的初始Javascript,返回响应的 PHP 脚本,以及另一个处理这些响应的 Javascript 函数。


  建立在 Ajax 库之上的 Sajax 通过运用简单的启发式方法大大简化了这一过程:Web 客户机需要访问的每个 PHP 函数都由Sajax “导出”。如果有一个名为 foo_bar() 的 PHP 函数,那么 Sajax 会把该函数导出为 Javascript 函数x_foo_bar()。客户机对 x_foo_bar() 的任何调用都会自动转发给服务器上的 foo_bar(),输出则传递给另一个Javascript 函数。清单 8 中的简短页面示范了这种功能。运行这个例子需要下载 Sajax 库(请参阅 参考资料)。

  清单 8. Sajax 的应用

<?php
require("Sajax.php");

function foo_bar ( $param ) {
 return "You typed: $param";
}

$sajax_request_type = "GET"; // Set HTTP request type to GET
sajax_init(); // Prepare Sajax
sajax_export("foo_bar"); // foo_bar can now be called by client
sajax_handle_client_request(); // Discussed below
?>
<html>
<head>
<script language="javascript">
<? sajax_show_javascript(); ?>
</script>
</head>
<body>
<form onSubmit="x_foo_bar(this.input.value, alert);return false;">
<input type="text" name="input" />
</form>
</body>
</html>

  如果打开清单 8 中的页面,在输入框中输入一些内容然后单击Enter,那么输入内容就会在一个警告框中显示出来。但在这个看似简单的网页背后,x_foo_bar() Javascript 函数将远程调用foo_bar() 函数,并把响应传递给 Javascript 内置函数 alert()。每个 Sajax导出函数的最后一个参数都是一个响应处理程序,负责处理 foo_bar() 的输出。

  这个例子还说明了 Sajax快速开发的另一个重要特性:不需要每个函数都有一个单独的文件,页面实际上调用的是其自身,因此更便于跟踪函数的调用(如图 5所示)。x_foo_bar() 函数直接向页面发回 Ajax 请求,在请求中包含函数名和参数。关键是sajax_handle_client_request() 函数,它截获所有的 Sajax 调用并自动对它们进行处理。

 
图 5. 使用 Sajax 客户机可通过一个页面访问服务器端的多个函数