将 Sajax 连接到相册
利用刚刚创建的代码,我们将用 Sajax 迅速把相册从多页面应用程序转化成活动的 Ajax 应用程序。
因为相册主要有两个函数,get_table() 和 get_image(),这也是需要用 Sajax 导出的全部函数。事实上,为了通过 Sajax 调用这些函数,这些函数本身基本上不需要修改,很快我们就会看到,我们只需要修改生成的链接即可。
清单 9. Sajax 相册的头部
| <?php require("Sajax.php"); function get_image () { } // Defined later function get_thumbs_table () { } // Defined later // Standard Sajax stuff. Use Get, and export two // main functions to javascript $sajax_request_type = "GET"; sajax_init(); sajax_export("get_thumbs_table", "get_image"); sajax_handle_client_request(); ?> |
对于本文而言,文档主体部分很简单。我们将使用 div 和 window 的 id 来显示服务器的输出。
清单 10. 显示服务器输出的 div 和 window id
| <body> <h1>Sajax photo album</h1> <div id="window"></div> </body> |
最后还要编写 JavaScript 回调函数。该例中,因为所有的服务器输出都直接输出到 window div 标记,所以可以重复使用简单的回调函数。将回调函数添加到 Sajax 函数调用中,就可以得到头(head)。
清单 11. 简单的头
| <head> <title>Creating a Sajax photo album</title> <style type="text/css"> body { text-align: center } div#window { margin: 0 auto 0 auto; width: 700px; padding: 10px; border: 1px solid #ccc; background: #eee; } table.image_table { margin: 0 auto 0 auto; } table.image_table td { padding: 5px } table.image_table a { display: block; } table.image_table img { display: block; width: 120px padding: 2px; border: 1px solid #ccc; } img.full { display: block; margin: 0 auto 0 auto; width: 300px; border: 1px solid #000 } </style> <script language="javascript"> <? sajax_show_javascript(); ?> // Outputs directly to the "window" div function to_window(output) { document.getElementById("window").innerHTML = output; } window.onload = function() { x get table to window); }; </script> </head> |
最后一步是保证应用程序中的所有链接都是自定义的 Sajax 调用。只需要取上一节中的代码并作如下替换:href="index.php?start=0&step=5" 变为 onclick="x_get_table(0, 5, to_window)",href="expand.php?index=0" 变为 onclick="x_get_image(0, to_window)"。
并在相应的函数中做同样修改:get_image_link() 和 get_table_link()。这样向 Sajax 的转化就完成了(如图 6 所示)。所有链接都变成了与远程 PHP 调用对应的 JavaScript 调用,PHP 使用 JavaScript 响应处理程序 to_window() 直接输出到页面。
整个应用程序都包含在一个页面中,还可以把其余功能(get_table()、get_image() 等)放在不能从 Web 访问的单独的库文件中。在大多数 Ajax 应用程序中,每个发往服务器的请求都需要由单独的脚本处理,或至少需要编写一个非常庞大的处理程序脚本来重定向请求。将所有这些文件都集中到一起可能非常麻烦。使用 Sajax 永远只需要一个文件,在该文件中只需定义我们使用的函数即可。Sajax 代替了处理程序脚本。
可以看到 URL 仍然保持不变,并带来了更多愉快的用户体验。window div 显示在一个灰色的框中,通过 Sajax 生成的内容非常清楚。脚本不一定要知道自身或者它在服务器上的位置,因为所有的链接最终都成为直接对页面自身的 JavaScript 调用。因此我们的代码能够很好的模块化。我们只需要保持 JavaScript 和 PHP 函数在同一个页面上即可,即使页面位置发生了变化也没有关系。收藏地址:http://www.qqread.com/ajax/h210384.html
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
相关专题
- Ajax技术专题 (558篇文章)
- PHP开发应用手册 (2953篇文章)
- Solaris基础知识入门 (4653篇文章)
- Ajax技术应用开发 (558篇文章)
- Wlan组网----家庭专题 (4217篇文章)
- Ajax入门与提高 (86篇文章)
- Ajax框架与实例 (221篇文章)
- Ajax技术核心 (182篇文章)
- Ajax的WEB开发 (141篇文章)
- Ajax技术开发 (138篇文章)
- 开发ASP.NET AJAX客户端定制行为 (0次浏览)
- 解决ajax获取页面直接显示乱码的方法 (0次浏览)
- 基于ASP.NET AJAX框架实现表单验证编程原理 (0次浏览)
- 基于ASP.NET AJAX框架实现表单验证编程(实践 (0次浏览)
- 基于ASP.NET AJAX框架实现表单验证编程(理论 (0次浏览)
- 从Atlas到Microsoft ASP.NET AJAX(3) (0次浏览)
- 从Atlas到Microsoft ASP.NET AJAX(2) (0次浏览)
- 从Atlas到Microsoft ASP.NET AJAX(1) (0次浏览)
- Codd 提出的 RDBMS 12项准则 (0次浏览)
- 不用组件实现Ajax效果 (0次浏览)




