设为首页 收藏本站
查看: 652|回复: 0

[经验分享] [转] 通过 PHP 和 Sajax 使用 Ajax(三)

[复制链接]

尚未签到

发表于 2017-4-5 08:51:43 | 显示全部楼层 |阅读模式
<iframe align="center" marginwidth="0" marginheight="0" src="http://www.zealware.com/csdnblog336280.html" frameborder="0" width="336" scrolling="no" height="280"></iframe>
通过 PHP 和 Sajax 使用 Ajax (三)
  简单 Ajax 工具包如何把服务器端 PHP 与 JavaScript 集成

  Tyler Anderson , 自由作者, Stexar 公司
2006 年 05 月 11 日
  与 Sajax 集成
  这一节将介绍什么是 Sajax,它如何模拟异步 JavaScript,以及当前的 Ajax 应用程序怎样转化成 Sajax 应用程序。

  什么是 Sajax?
  简单 Ajax 工具包(Sajax)是同步的异步 JavaScript 和 XML。同步的原因是,当前应用程序中使用的 XML HTTP 对象的细节,通过使用 Sajax.php 库文件而被抽象出去。这使开发 Ajax 应用程序变得更加容易,因为编程出错的机会降低了。链接也变得更加容易,因为它们将只包含函数调用。基本上,Sajax 是一种制作 Ajax 应用程序的模块化方式,通过预定的、动态的函数调用,使得应用程序的开发过程更加平滑。
  模拟异步 JavaScript
  在这一节中,要使用 Sajax 的几个方面来模拟 Ajax。其中一个是 sajax_init,它初始化 Sajax 库。接下来是 sajax_export 函数,要调用它来通知 Sajax 有一个“面板”内容区,稍后会为它创建对应的 JavaScript 函数。针对应用程序需要的动态内容区的多少,可以根据需要为每个动态内容区调用 sajax_export,次数不限。
  下一个要使用的函数是 sajax_handle_client_request。这个函数初始化 Sajax 的数据结构,让应用程序准备好处理客户请求。还要设置 $sajax_remote_uri。这是应用程序发送客户请求的目标 URL,与 Ajax 应用程序的链接中嵌入的 URL 类似。
  最后,需要用 sajax_show_javascript 函数把 Sajax JavaScript 函数包含在 JavaScript 中。
  幕后发生了什么?
  现在会发生什么?在幕后,Sajax 起的作用实际与 Ajax 相同。但是,Sajax 会替您设置 XML HTTP 对象,从而简化开发工作。它允许应用程序使用 JavaScript 函数用一种模块化的方式拥有多个内容区。Sajax 包使得 Ajax 开发更有效率,同时具有同样的幕后功能。
  

  初始化 Sajax
  现在开始 Sajax 应用程序。请拷贝 ajax-app.php 文件并把拷贝改名为 sajax-app.php。把文件放在与 ajax-app.php 文件相同的目录中。添加以下代码到文件开始:
  
清单 13. 初始化 Sajax


<?require ("Sajax.php");$sajax_remote_uri =    "http://localhost.localdomain/ajax-sajax/panels-sajax.php";sajax_init();sajax_export("panels");sajax_handle_client_request();?>..            
  首先,需要设置远程 URL。然后需要初始化 Sajax 并导出“panels”。这对 Sajax 进行初始化,允许稍后创建的 JavaScript 函数去处理与“panels”内容相关的请求。
  

  修改链接
  链接现在需要包含函数,以便把面板 ID 传递给对应的 JavaScript 函数。
  
清单 14. 应用程序中的面板链接


<?php require('content/header.html'); ?>"getPanel(0)">Managing content<?php require('content/between-link.html'); ?>"getPanel(1)" >Adding content<?php require('content/between-link.html'); ?>"getPanel(2)" >Saving new content<?php require('content/between-link.html'); ?>"getPanel(3)" >Editing content<?php require('content/between-link.html'); ?>"getPanel(4)" >Saving edited content<?php require('content/between-link.html'); ?>"getPanel(5)" >Avoid adding duplicates<?php require('content/between-link.html'); ?>"getPanel(6)" >Avoid editing a page                            that doesn't exist<?php require('content/between-link.html'); ?>"getPanel(7)" >Deleting content<?php require('content/between-link.html'); ?>"getPanel(8)" >Serving a page<?php require('content/between-link.html'); ?>"getPanel(9)">Pulling it together:                            The CMS control page<?php require('content/pre-content.html'); ?>...            


点击链接会调用一个不同的 JavaScript 函数,接下来会添加这个函数。  替换 JavaScript
  在继续之前,请从 Ajax 应用程序删除 JavaScrip。需要添加新的函数,这些新函数和 XML HTTP 对象无关。添加以下代码代替当前的 JavaScript 函数:
  
清单 15. 新的 JavaScript 函数


...<script type="text/javascript">    </font><font face="Lucida Console"><span class="boldcode"><strong><?php sajax_show_javascript(); ?>    function getPanel_cb(content) {        document.getElementById('content').innerHTML = content;    }    function getPanel(panel_id){        x_panels(panel_id, getPanel_cb);</strong></span>    }</script>...            


  第一行调用 sajax_show_javascript,它导入 Sajax 需要的 JavaScript 函数和其他要添加的 getPanel 函数。这些添加的 JavaScript 函数把 Sajax 应用程序的核心带到浏览器,因为浏览器首次装入页面后,PHP 就没有作用了。
  返回 Sajax 内容
  现在需要修改 panels-ajax.php 文件以便适应 Sajax。拷贝并重命名 panels-ajax.php 文件为 panels-sajax.php 并把它放在与其他文件相同的目录下。修改它,如清单 16 所示。
  
清单 16. panels-sajax.php 的修改


<?php <span class="boldcode">if(
通过 PHP 和 Sajax 使用 Ajax (三)

  简单 Ajax 工具包如何把服务器端 PHP 与 JavaScript 集成

  Tyler Anderson , 自由作者, Stexar 公司
2006 年 05 月 11 日


  与 Sajax 集成

  这一节将介绍什么是 Sajax,它如何模拟异步 JavaScript,以及当前的 Ajax 应用程序怎样转化成 Sajax 应用程序。


  什么是 Sajax?

  简单 Ajax 工具包(Sajax)是同步的异步 JavaScript 和 XML。同步的原因是,当前应用程序中使用的 XML HTTP 对象的细节,通过使用 Sajax.php 库文件而被抽象出去。这使开发 Ajax 应用程序变得更加容易,因为编程出错的机会降低了。链接也变得更加容易,因为它们将只包含函数调用。基本上,Sajax 是一种制作 Ajax 应用程序的模块化方式,通过预定的、动态的函数调用,使得应用程序的开发过程更加平滑。


  模拟异步 JavaScript

  在这一节中,要使用 Sajax 的几个方面来模拟 Ajax。其中一个是 sajax_init,它初始化 Sajax 库。接下来是 sajax_export 函数,要调用它来通知 Sajax 有一个“面板”内容区,稍后会为它创建对应的 JavaScript 函数。针对应用程序需要的动态内容区的多少,可以根据需要为每个动态内容区调用 sajax_export,次数不限。

  下一个要使用的函数是 sajax_handle_client_request。这个函数初始化 Sajax 的数据结构,让应用程序准备好处理客户请求。还要设置 $sajax_remote_uri。这是应用程序发送客户请求的目标 URL,与 Ajax 应用程序的链接中嵌入的 URL 类似。

  最后,需要用 sajax_show_javascript 函数把 Sajax JavaScript 函数包含在 JavaScript 中。


  幕后发生了什么?

  现在会发生什么?在幕后,Sajax 起的作用实际与 Ajax 相同。但是,Sajax 会替您设置 XML HTTP 对象,从而简化开发工作。它允许应用程序使用 JavaScript 函数用一种模块化的方式拥有多个内容区。Sajax 包使得 Ajax 开发更有效率,同时具有同样的幕后功能。

  


  初始化 Sajax

  现在开始 Sajax 应用程序。请拷贝 ajax-app.php 文件并把拷贝改名为 sajax-app.php。把文件放在与 ajax-app.php 文件相同的目录中。添加以下代码到文件开始:

  
清单 13. 初始化 Sajax


<?require ("Sajax.php");$sajax_remote_uri =    "http://localhost.localdomain/ajax-sajax/panels-sajax.php";sajax_init();sajax_export("panels");sajax_handle_client_request();?>..            
  首先,需要设置远程 URL。然后需要初始化 Sajax 并导出“panels”。这对 Sajax 进行初始化,允许稍后创建的 JavaScript 函数去处理与“panels”内容相关的请求。
  

  修改链接
  链接现在需要包含函数,以便把面板 ID 传递给对应的 JavaScript 函数。
  
清单 14. 应用程序中的面板链接


<?php require('content/header.html'); ?>"getPanel(0)">Managing content<?php require('content/between-link.html'); ?>"getPanel(1)" >Adding content<?php require('content/between-link.html'); ?>"getPanel(2)" >Saving new content<?php require('content/between-link.html'); ?>"getPanel(3)" >Editing content<?php require('content/between-link.html'); ?>"getPanel(4)" >Saving edited content<?php require('content/between-link.html'); ?>"getPanel(5)" >Avoid adding duplicates<?php require('content/between-link.html'); ?>"getPanel(6)" >Avoid editing a page                            that doesn't exist<?php require('content/between-link.html'); ?>"getPanel(7)" >Deleting content<?php require('content/between-link.html'); ?>"getPanel(8)" >Serving a page<?php require('content/between-link.html'); ?>"getPanel(9)">Pulling it together:                            The CMS control page<?php require('content/pre-content.html'); ?>...            


点击链接会调用一个不同的 JavaScript 函数,接下来会添加这个函数。  替换 JavaScript
  在继续之前,请从 Ajax 应用程序删除 JavaScrip。需要添加新的函数,这些新函数和 XML HTTP 对象无关。添加以下代码代替当前的 JavaScript 函数:
  
清单 15. 新的 JavaScript 函数


...<script type="text/javascript">    </font><font face="Lucida Console"><span class="boldcode"><strong><?php sajax_show_javascript(); ?>    function getPanel_cb(content) {        document.getElementById('content').innerHTML = content;    }    function getPanel(panel_id){        x_panels(panel_id, getPanel_cb);</strong></span>    }</script>...            


  第一行调用 sajax_show_javascript,它导入 Sajax 需要的 JavaScript 函数和其他要添加的 getPanel 函数。这些添加的 JavaScript 函数把 Sajax 应用程序的核心带到浏览器,因为浏览器首次装入页面后,PHP 就没有作用了。
  返回 Sajax 内容
  现在需要修改 panels-ajax.php 文件以便适应 Sajax。拷贝并重命名 panels-ajax.php 文件为 panels-sajax.php 并把它放在与其他文件相同的目录下。修改它,如清单 16 所示。
  
清单 16. panels-sajax.php 的修改


___FCKpd___3            


  这个文件将检查通过 GET 提交的变量。请注意“panels”被发送给 sajax_import 函数。这应当是 GET 数组中 rs 变量的值。如果 $_GET['rs'] 的值是 panel,那么 panel_id 变量就包含在 $_GET['rsargs'][0] 中,这是发送给 x_panels 函数的第一个参数,由 Sajax 库自动生成。
  在返回适当的面板之前,代码必须输出两个字符(它们好像是 Sajax 库的一个 bug)。这两个字符不会在显示的 Web 页面的 HTML 源代码中出现。接下来,必须用 $_GET['rsargs'][0] 替换剩下的到 $_GET['panel_id'] 的引用。最后,需要把导航链接修改成看起来与 sajax-app.php 文件中修改的链接一样。把对 loadHTML 的调用换成 getPanel,要像以前一样传递 ID。
  
图 5. 集成了 Sajax 后 PHP 应用程序的浏览器输出示例

图片URL:https://www6.software.ibm.com/developerworks/cn/education/opensource/os-phpajax/fig05.jpg



  应用程序的行为和输出示例如图 5 所示,与使用 Ajax 时的输出相同。
  

  结束语
  恭喜!您用 PHP 创建了 Ajax 应用程序并把它与 Sajax 成功地集成。这个应用程序(以及日后的异步 JavaScript 应用程序)会给使用它的那些人节约许多带宽和等候页面重载的时间,因为不必为每次点击都载入整个页面,只需载入必要的内容。这将使创建交互丰富的应用程序变得更为普遍。
  

下载
Source code for the PHP application:
ftp://www6.software.ibm.com/software/developer/library/os-phpajax.sajax.source.zip


  说明:
本文来自:http://www.ibm.com/developerworks/cn/views/opensource/tutorials.jsp?cv_doc_id=109065
版权归属IBM所有,本Blog只是处于转载学习更多技术目的
GET['rs'] == 'panels'){
    switch(
通过 PHP 和 Sajax 使用 Ajax (三)
  简单 Ajax 工具包如何把服务器端 PHP 与 JavaScript 集成

  Tyler Anderson , 自由作者, Stexar 公司
2006 年 05 月 11 日
  与 Sajax 集成
  这一节将介绍什么是 Sajax,它如何模拟异步 JavaScript,以及当前的 Ajax 应用程序怎样转化成 Sajax 应用程序。

  什么是 Sajax?
  简单 Ajax 工具包(Sajax)是同步的异步 JavaScript 和 XML。同步的原因是,当前应用程序中使用的 XML HTTP 对象的细节,通过使用 Sajax.php 库文件而被抽象出去。这使开发 Ajax 应用程序变得更加容易,因为编程出错的机会降低了。链接也变得更加容易,因为它们将只包含函数调用。基本上,Sajax 是一种制作 Ajax 应用程序的模块化方式,通过预定的、动态的函数调用,使得应用程序的开发过程更加平滑。
  模拟异步 JavaScript
  在这一节中,要使用 Sajax 的几个方面来模拟 Ajax。其中一个是 sajax_init,它初始化 Sajax 库。接下来是 sajax_export 函数,要调用它来通知 Sajax 有一个“面板”内容区,稍后会为它创建对应的 JavaScript 函数。针对应用程序需要的动态内容区的多少,可以根据需要为每个动态内容区调用 sajax_export,次数不限。
  下一个要使用的函数是 sajax_handle_client_request。这个函数初始化 Sajax 的数据结构,让应用程序准备好处理客户请求。还要设置 $sajax_remote_uri。这是应用程序发送客户请求的目标 URL,与 Ajax 应用程序的链接中嵌入的 URL 类似。
  最后,需要用 sajax_show_javascript 函数把 Sajax JavaScript 函数包含在 JavaScript 中。
  幕后发生了什么?
  现在会发生什么?在幕后,Sajax 起的作用实际与 Ajax 相同。但是,Sajax 会替您设置 XML HTTP 对象,从而简化开发工作。它允许应用程序使用 JavaScript 函数用一种模块化的方式拥有多个内容区。Sajax 包使得 Ajax 开发更有效率,同时具有同样的幕后功能。
  

  初始化 Sajax
  现在开始 Sajax 应用程序。请拷贝 ajax-app.php 文件并把拷贝改名为 sajax-app.php。把文件放在与 ajax-app.php 文件相同的目录中。添加以下代码到文件开始:
  
清单 13. 初始化 Sajax


<?require ("Sajax.php");$sajax_remote_uri =    "http://localhost.localdomain/ajax-sajax/panels-sajax.php";sajax_init();sajax_export("panels");sajax_handle_client_request();?>..            
  首先,需要设置远程 URL。然后需要初始化 Sajax 并导出“panels”。这对 Sajax 进行初始化,允许稍后创建的 JavaScript 函数去处理与“panels”内容相关的请求。
  

  修改链接
  链接现在需要包含函数,以便把面板 ID 传递给对应的 JavaScript 函数。
  
清单 14. 应用程序中的面板链接


<?php require('content/header.html'); ?>"getPanel(0)">Managing content<?php require('content/between-link.html'); ?>"getPanel(1)" >Adding content<?php require('content/between-link.html'); ?>"getPanel(2)" >Saving new content<?php require('content/between-link.html'); ?>"getPanel(3)" >Editing content<?php require('content/between-link.html'); ?>"getPanel(4)" >Saving edited content<?php require('content/between-link.html'); ?>"getPanel(5)" >Avoid adding duplicates<?php require('content/between-link.html'); ?>"getPanel(6)" >Avoid editing a page                            that doesn't exist<?php require('content/between-link.html'); ?>"getPanel(7)" >Deleting content<?php require('content/between-link.html'); ?>"getPanel(8)" >Serving a page<?php require('content/between-link.html'); ?>"getPanel(9)">Pulling it together:                            The CMS control page<?php require('content/pre-content.html'); ?>...            


点击链接会调用一个不同的 JavaScript 函数,接下来会添加这个函数。  替换 JavaScript
  在继续之前,请从 Ajax 应用程序删除 JavaScrip。需要添加新的函数,这些新函数和 XML HTTP 对象无关。添加以下代码代替当前的 JavaScript 函数:
  
清单 15. 新的 JavaScript 函数


...<script type="text/javascript">    </font><font face="Lucida Console"><span class="boldcode"><strong><?php sajax_show_javascript(); ?>    function getPanel_cb(content) {        document.getElementById('content').innerHTML = content;    }    function getPanel(panel_id){        x_panels(panel_id, getPanel_cb);</strong></span>    }</script>...            


  第一行调用 sajax_show_javascript,它导入 Sajax 需要的 JavaScript 函数和其他要添加的 getPanel 函数。这些添加的 JavaScript 函数把 Sajax 应用程序的核心带到浏览器,因为浏览器首次装入页面后,PHP 就没有作用了。
  返回 Sajax 内容
  现在需要修改 panels-ajax.php 文件以便适应 Sajax。拷贝并重命名 panels-ajax.php 文件为 panels-sajax.php 并把它放在与其他文件相同的目录下。修改它,如清单 16 所示。
  
清单 16. panels-sajax.php 的修改


___FCKpd___3            


  这个文件将检查通过 GET 提交的变量。请注意“panels”被发送给 sajax_import 函数。这应当是 GET 数组中 rs 变量的值。如果 $_GET['rs'] 的值是 panel,那么 panel_id 变量就包含在 $_GET['rsargs'][0] 中,这是发送给 x_panels 函数的第一个参数,由 Sajax 库自动生成。
  在返回适当的面板之前,代码必须输出两个字符(它们好像是 Sajax 库的一个 bug)。这两个字符不会在显示的 Web 页面的 HTML 源代码中出现。接下来,必须用 $_GET['rsargs'][0] 替换剩下的到 $_GET['panel_id'] 的引用。最后,需要把导航链接修改成看起来与 sajax-app.php 文件中修改的链接一样。把对 loadHTML 的调用换成 getPanel,要像以前一样传递 ID。
  
图 5. 集成了 Sajax 后 PHP 应用程序的浏览器输出示例

图片URL:https://www6.software.ibm.com/developerworks/cn/education/opensource/os-phpajax/fig05.jpg



  应用程序的行为和输出示例如图 5 所示,与使用 Ajax 时的输出相同。
  

  结束语
  恭喜!您用 PHP 创建了 Ajax 应用程序并把它与 Sajax 成功地集成。这个应用程序(以及日后的异步 JavaScript 应用程序)会给使用它的那些人节约许多带宽和等候页面重载的时间,因为不必为每次点击都载入整个页面,只需载入必要的内容。这将使创建交互丰富的应用程序变得更为普遍。
  

下载
Source code for the PHP application:
ftp://www6.software.ibm.com/software/developer/library/os-phpajax.sajax.source.zip


  说明:
本文来自:http://www.ibm.com/developerworks/cn/views/opensource/tutorials.jsp?cv_doc_id=109065
版权归属IBM所有,本Blog只是处于转载学习更多技术目的
GET['rsargs'][0]){
    case 0:...    case 9:       print("##");      require('content/panel-'.
通过 PHP 和 Sajax 使用 Ajax (三)
  简单 Ajax 工具包如何把服务器端 PHP 与 JavaScript 集成

  Tyler Anderson , 自由作者, Stexar 公司
2006 年 05 月 11 日
  与 Sajax 集成
  这一节将介绍什么是 Sajax,它如何模拟异步 JavaScript,以及当前的 Ajax 应用程序怎样转化成 Sajax 应用程序。

  什么是 Sajax?
  简单 Ajax 工具包(Sajax)是同步的异步 JavaScript 和 XML。同步的原因是,当前应用程序中使用的 XML HTTP 对象的细节,通过使用 Sajax.php 库文件而被抽象出去。这使开发 Ajax 应用程序变得更加容易,因为编程出错的机会降低了。链接也变得更加容易,因为它们将只包含函数调用。基本上,Sajax 是一种制作 Ajax 应用程序的模块化方式,通过预定的、动态的函数调用,使得应用程序的开发过程更加平滑。
  模拟异步 JavaScript
  在这一节中,要使用 Sajax 的几个方面来模拟 Ajax。其中一个是 sajax_init,它初始化 Sajax 库。接下来是 sajax_export 函数,要调用它来通知 Sajax 有一个“面板”内容区,稍后会为它创建对应的 JavaScript 函数。针对应用程序需要的动态内容区的多少,可以根据需要为每个动态内容区调用 sajax_export,次数不限。
  下一个要使用的函数是 sajax_handle_client_request。这个函数初始化 Sajax 的数据结构,让应用程序准备好处理客户请求。还要设置 $sajax_remote_uri。这是应用程序发送客户请求的目标 URL,与 Ajax 应用程序的链接中嵌入的 URL 类似。
  最后,需要用 sajax_show_javascript 函数把 Sajax JavaScript 函数包含在 JavaScript 中。
  幕后发生了什么?
  现在会发生什么?在幕后,Sajax 起的作用实际与 Ajax 相同。但是,Sajax 会替您设置 XML HTTP 对象,从而简化开发工作。它允许应用程序使用 JavaScript 函数用一种模块化的方式拥有多个内容区。Sajax 包使得 Ajax 开发更有效率,同时具有同样的幕后功能。
  

  初始化 Sajax
  现在开始 Sajax 应用程序。请拷贝 ajax-app.php 文件并把拷贝改名为 sajax-app.php。把文件放在与 ajax-app.php 文件相同的目录中。添加以下代码到文件开始:
  
清单 13. 初始化 Sajax


<?require ("Sajax.php");$sajax_remote_uri =    "http://localhost.localdomain/ajax-sajax/panels-sajax.php";sajax_init();sajax_export("panels");sajax_handle_client_request();?>..            
  首先,需要设置远程 URL。然后需要初始化 Sajax 并导出“panels”。这对 Sajax 进行初始化,允许稍后创建的 JavaScript 函数去处理与“panels”内容相关的请求。
  

  修改链接
  链接现在需要包含函数,以便把面板 ID 传递给对应的 JavaScript 函数。
  
清单 14. 应用程序中的面板链接


<?php require('content/header.html'); ?>"getPanel(0)">Managing content<?php require('content/between-link.html'); ?>"getPanel(1)" >Adding content<?php require('content/between-link.html'); ?>"getPanel(2)" >Saving new content<?php require('content/between-link.html'); ?>"getPanel(3)" >Editing content<?php require('content/between-link.html'); ?>"getPanel(4)" >Saving edited content<?php require('content/between-link.html'); ?>"getPanel(5)" >Avoid adding duplicates<?php require('content/between-link.html'); ?>"getPanel(6)" >Avoid editing a page                            that doesn't exist<?php require('content/between-link.html'); ?>"getPanel(7)" >Deleting content<?php require('content/between-link.html'); ?>"getPanel(8)" >Serving a page<?php require('content/between-link.html'); ?>"getPanel(9)">Pulling it together:                            The CMS control page<?php require('content/pre-content.html'); ?>...            


点击链接会调用一个不同的 JavaScript 函数,接下来会添加这个函数。  替换 JavaScript
  在继续之前,请从 Ajax 应用程序删除 JavaScrip。需要添加新的函数,这些新函数和 XML HTTP 对象无关。添加以下代码代替当前的 JavaScript 函数:
  
清单 15. 新的 JavaScript 函数


...<script type="text/javascript">    </font><font face="Lucida Console"><span class="boldcode"><strong><?php sajax_show_javascript(); ?>    function getPanel_cb(content) {        document.getElementById('content').innerHTML = content;    }    function getPanel(panel_id){        x_panels(panel_id, getPanel_cb);</strong></span>    }</script>...            


  第一行调用 sajax_show_javascript,它导入 Sajax 需要的 JavaScript 函数和其他要添加的 getPanel 函数。这些添加的 JavaScript 函数把 Sajax 应用程序的核心带到浏览器,因为浏览器首次装入页面后,PHP 就没有作用了。
  返回 Sajax 内容
  现在需要修改 panels-ajax.php 文件以便适应 Sajax。拷贝并重命名 panels-ajax.php 文件为 panels-sajax.php 并把它放在与其他文件相同的目录下。修改它,如清单 16 所示。
  
清单 16. panels-sajax.php 的修改


___FCKpd___3            


  这个文件将检查通过 GET 提交的变量。请注意“panels”被发送给 sajax_import 函数。这应当是 GET 数组中 rs 变量的值。如果 $_GET['rs'] 的值是 panel,那么 panel_id 变量就包含在 $_GET['rsargs'][0] 中,这是发送给 x_panels 函数的第一个参数,由 Sajax 库自动生成。
  在返回适当的面板之前,代码必须输出两个字符(它们好像是 Sajax 库的一个 bug)。这两个字符不会在显示的 Web 页面的 HTML 源代码中出现。接下来,必须用 $_GET['rsargs'][0] 替换剩下的到 $_GET['panel_id'] 的引用。最后,需要把导航链接修改成看起来与 sajax-app.php 文件中修改的链接一样。把对 loadHTML 的调用换成 getPanel,要像以前一样传递 ID。
  
图 5. 集成了 Sajax 后 PHP 应用程序的浏览器输出示例

图片URL:https://www6.software.ibm.com/developerworks/cn/education/opensource/os-phpajax/fig05.jpg



  应用程序的行为和输出示例如图 5 所示,与使用 Ajax 时的输出相同。
  

  结束语
  恭喜!您用 PHP 创建了 Ajax 应用程序并把它与 Sajax 成功地集成。这个应用程序(以及日后的异步 JavaScript 应用程序)会给使用它的那些人节约许多带宽和等候页面重载的时间,因为不必为每次点击都载入整个页面,只需载入必要的内容。这将使创建交互丰富的应用程序变得更为普遍。
  

下载
Source code for the PHP application:
ftp://www6.software.ibm.com/software/developer/library/os-phpajax.sajax.source.zip


  说明:
本文来自:http://www.ibm.com/developerworks/cn/views/opensource/tutorials.jsp?cv_doc_id=109065
版权归属IBM所有,本Blog只是处于转载学习更多技术目的
GET['rsargs'][0]
.'.html');      $panel_id_next =
通过 PHP 和 Sajax 使用 Ajax (三)
  简单 Ajax 工具包如何把服务器端 PHP 与 JavaScript 集成

  Tyler Anderson , 自由作者, Stexar 公司
2006 年 05 月 11 日
  与 Sajax 集成
  这一节将介绍什么是 Sajax,它如何模拟异步 JavaScript,以及当前的 Ajax 应用程序怎样转化成 Sajax 应用程序。

  什么是 Sajax?
  简单 Ajax 工具包(Sajax)是同步的异步 JavaScript 和 XML。同步的原因是,当前应用程序中使用的 XML HTTP 对象的细节,通过使用 Sajax.php 库文件而被抽象出去。这使开发 Ajax 应用程序变得更加容易,因为编程出错的机会降低了。链接也变得更加容易,因为它们将只包含函数调用。基本上,Sajax 是一种制作 Ajax 应用程序的模块化方式,通过预定的、动态的函数调用,使得应用程序的开发过程更加平滑。
  模拟异步 JavaScript
  在这一节中,要使用 Sajax 的几个方面来模拟 Ajax。其中一个是 sajax_init,它初始化 Sajax 库。接下来是 sajax_export 函数,要调用它来通知 Sajax 有一个“面板”内容区,稍后会为它创建对应的 JavaScript 函数。针对应用程序需要的动态内容区的多少,可以根据需要为每个动态内容区调用 sajax_export,次数不限。
  下一个要使用的函数是 sajax_handle_client_request。这个函数初始化 Sajax 的数据结构,让应用程序准备好处理客户请求。还要设置 $sajax_remote_uri。这是应用程序发送客户请求的目标 URL,与 Ajax 应用程序的链接中嵌入的 URL 类似。
  最后,需要用 sajax_show_javascript 函数把 Sajax JavaScript 函数包含在 JavaScript 中。
  幕后发生了什么?
  现在会发生什么?在幕后,Sajax 起的作用实际与 Ajax 相同。但是,Sajax 会替您设置 XML HTTP 对象,从而简化开发工作。它允许应用程序使用 JavaScript 函数用一种模块化的方式拥有多个内容区。Sajax 包使得 Ajax 开发更有效率,同时具有同样的幕后功能。
  

  初始化 Sajax
  现在开始 Sajax 应用程序。请拷贝 ajax-app.php 文件并把拷贝改名为 sajax-app.php。把文件放在与 ajax-app.php 文件相同的目录中。添加以下代码到文件开始:
  
清单 13. 初始化 Sajax


<?require ("Sajax.php");$sajax_remote_uri =    "http://localhost.localdomain/ajax-sajax/panels-sajax.php";sajax_init();sajax_export("panels");sajax_handle_client_request();?>..            
  首先,需要设置远程 URL。然后需要初始化 Sajax 并导出“panels”。这对 Sajax 进行初始化,允许稍后创建的 JavaScript 函数去处理与“panels”内容相关的请求。
  

  修改链接
  链接现在需要包含函数,以便把面板 ID 传递给对应的 JavaScript 函数。
  
清单 14. 应用程序中的面板链接


<?php require('content/header.html'); ?>"getPanel(0)">Managing content<?php require('content/between-link.html'); ?>"getPanel(1)" >Adding content<?php require('content/between-link.html'); ?>"getPanel(2)" >Saving new content<?php require('content/between-link.html'); ?>"getPanel(3)" >Editing content<?php require('content/between-link.html'); ?>"getPanel(4)" >Saving edited content<?php require('content/between-link.html'); ?>"getPanel(5)" >Avoid adding duplicates<?php require('content/between-link.html'); ?>"getPanel(6)" >Avoid editing a page                            that doesn't exist<?php require('content/between-link.html'); ?>"getPanel(7)" >Deleting content<?php require('content/between-link.html'); ?>"getPanel(8)" >Serving a page<?php require('content/between-link.html'); ?>"getPanel(9)">Pulling it together:                            The CMS control page<?php require('content/pre-content.html'); ?>...            


点击链接会调用一个不同的 JavaScript 函数,接下来会添加这个函数。  替换 JavaScript
  在继续之前,请从 Ajax 应用程序删除 JavaScrip。需要添加新的函数,这些新函数和 XML HTTP 对象无关。添加以下代码代替当前的 JavaScript 函数:
  
清单 15. 新的 JavaScript 函数


...<script type="text/javascript">    </font><font face="Lucida Console"><span class="boldcode"><strong><?php sajax_show_javascript(); ?>    function getPanel_cb(content) {        document.getElementById('content').innerHTML = content;    }    function getPanel(panel_id){        x_panels(panel_id, getPanel_cb);</strong></span>    }</script>...            


  第一行调用 sajax_show_javascript,它导入 Sajax 需要的 JavaScript 函数和其他要添加的 getPanel 函数。这些添加的 JavaScript 函数把 Sajax 应用程序的核心带到浏览器,因为浏览器首次装入页面后,PHP 就没有作用了。
  返回 Sajax 内容
  现在需要修改 panels-ajax.php 文件以便适应 Sajax。拷贝并重命名 panels-ajax.php 文件为 panels-sajax.php 并把它放在与其他文件相同的目录下。修改它,如清单 16 所示。
  
清单 16. panels-sajax.php 的修改


___FCKpd___3            


  这个文件将检查通过 GET 提交的变量。请注意“panels”被发送给 sajax_import 函数。这应当是 GET 数组中 rs 变量的值。如果 $_GET['rs'] 的值是 panel,那么 panel_id 变量就包含在 $_GET['rsargs'][0] 中,这是发送给 x_panels 函数的第一个参数,由 Sajax 库自动生成。
  在返回适当的面板之前,代码必须输出两个字符(它们好像是 Sajax 库的一个 bug)。这两个字符不会在显示的 Web 页面的 HTML 源代码中出现。接下来,必须用 $_GET['rsargs'][0] 替换剩下的到 $_GET['panel_id'] 的引用。最后,需要把导航链接修改成看起来与 sajax-app.php 文件中修改的链接一样。把对 loadHTML 的调用换成 getPanel,要像以前一样传递 ID。
  
图 5. 集成了 Sajax 后 PHP 应用程序的浏览器输出示例

图片URL:https://www6.software.ibm.com/developerworks/cn/education/opensource/os-phpajax/fig05.jpg



  应用程序的行为和输出示例如图 5 所示,与使用 Ajax 时的输出相同。
  

  结束语
  恭喜!您用 PHP 创建了 Ajax 应用程序并把它与 Sajax 成功地集成。这个应用程序(以及日后的异步 JavaScript 应用程序)会给使用它的那些人节约许多带宽和等候页面重载的时间,因为不必为每次点击都载入整个页面,只需载入必要的内容。这将使创建交互丰富的应用程序变得更为普遍。
  

下载
Source code for the PHP application:
ftp://www6.software.ibm.com/software/developer/library/os-phpajax.sajax.source.zip


  说明:
本文来自:http://www.ibm.com/developerworks/cn/views/opensource/tutorials.jsp?cv_doc_id=109065
版权归属IBM所有,本Blog只是处于转载学习更多技术目的
GET['rsargs'][0]
+ 1;      $panel_id_prev =
通过 PHP 和 Sajax 使用 Ajax (三)
  简单 Ajax 工具包如何把服务器端 PHP 与 JavaScript 集成

  Tyler Anderson , 自由作者, Stexar 公司
2006 年 05 月 11 日
  与 Sajax 集成
  这一节将介绍什么是 Sajax,它如何模拟异步 JavaScript,以及当前的 Ajax 应用程序怎样转化成 Sajax 应用程序。

  什么是 Sajax?
  简单 Ajax 工具包(Sajax)是同步的异步 JavaScript 和 XML。同步的原因是,当前应用程序中使用的 XML HTTP 对象的细节,通过使用 Sajax.php 库文件而被抽象出去。这使开发 Ajax 应用程序变得更加容易,因为编程出错的机会降低了。链接也变得更加容易,因为它们将只包含函数调用。基本上,Sajax 是一种制作 Ajax 应用程序的模块化方式,通过预定的、动态的函数调用,使得应用程序的开发过程更加平滑。
  模拟异步 JavaScript
  在这一节中,要使用 Sajax 的几个方面来模拟 Ajax。其中一个是 sajax_init,它初始化 Sajax 库。接下来是 sajax_export 函数,要调用它来通知 Sajax 有一个“面板”内容区,稍后会为它创建对应的 JavaScript 函数。针对应用程序需要的动态内容区的多少,可以根据需要为每个动态内容区调用 sajax_export,次数不限。
  下一个要使用的函数是 sajax_handle_client_request。这个函数初始化 Sajax 的数据结构,让应用程序准备好处理客户请求。还要设置 $sajax_remote_uri。这是应用程序发送客户请求的目标 URL,与 Ajax 应用程序的链接中嵌入的 URL 类似。
  最后,需要用 sajax_show_javascript 函数把 Sajax JavaScript 函数包含在 JavaScript 中。
  幕后发生了什么?
  现在会发生什么?在幕后,Sajax 起的作用实际与 Ajax 相同。但是,Sajax 会替您设置 XML HTTP 对象,从而简化开发工作。它允许应用程序使用 JavaScript 函数用一种模块化的方式拥有多个内容区。Sajax 包使得 Ajax 开发更有效率,同时具有同样的幕后功能。
  

  初始化 Sajax
  现在开始 Sajax 应用程序。请拷贝 ajax-app.php 文件并把拷贝改名为 sajax-app.php。把文件放在与 ajax-app.php 文件相同的目录中。添加以下代码到文件开始:
  
清单 13. 初始化 Sajax


<?require ("Sajax.php");$sajax_remote_uri =    "http://localhost.localdomain/ajax-sajax/panels-sajax.php";sajax_init();sajax_export("panels");sajax_handle_client_request();?>..            
  首先,需要设置远程 URL。然后需要初始化 Sajax 并导出“panels”。这对 Sajax 进行初始化,允许稍后创建的 JavaScript 函数去处理与“panels”内容相关的请求。
  

  修改链接
  链接现在需要包含函数,以便把面板 ID 传递给对应的 JavaScript 函数。
  
清单 14. 应用程序中的面板链接


<?php require('content/header.html'); ?>"getPanel(0)">Managing content<?php require('content/between-link.html'); ?>"getPanel(1)" >Adding content<?php require('content/between-link.html'); ?>"getPanel(2)" >Saving new content<?php require('content/between-link.html'); ?>"getPanel(3)" >Editing content<?php require('content/between-link.html'); ?>"getPanel(4)" >Saving edited content<?php require('content/between-link.html'); ?>"getPanel(5)" >Avoid adding duplicates<?php require('content/between-link.html'); ?>"getPanel(6)" >Avoid editing a page                            that doesn't exist<?php require('content/between-link.html'); ?>"getPanel(7)" >Deleting content<?php require('content/between-link.html'); ?>"getPanel(8)" >Serving a page<?php require('content/between-link.html'); ?>"getPanel(9)">Pulling it together:                            The CMS control page<?php require('content/pre-content.html'); ?>...            


点击链接会调用一个不同的 JavaScript 函数,接下来会添加这个函数。  替换 JavaScript
  在继续之前,请从 Ajax 应用程序删除 JavaScrip。需要添加新的函数,这些新函数和 XML HTTP 对象无关。添加以下代码代替当前的 JavaScript 函数:
  
清单 15. 新的 JavaScript 函数


...<script type="text/javascript">    </font><font face="Lucida Console"><span class="boldcode"><strong><?php sajax_show_javascript(); ?>    function getPanel_cb(content) {        document.getElementById('content').innerHTML = content;    }    function getPanel(panel_id){        x_panels(panel_id, getPanel_cb);</strong></span>    }</script>...            


  第一行调用 sajax_show_javascript,它导入 Sajax 需要的 JavaScript 函数和其他要添加的 getPanel 函数。这些添加的 JavaScript 函数把 Sajax 应用程序的核心带到浏览器,因为浏览器首次装入页面后,PHP 就没有作用了。
  返回 Sajax 内容
  现在需要修改 panels-ajax.php 文件以便适应 Sajax。拷贝并重命名 panels-ajax.php 文件为 panels-sajax.php 并把它放在与其他文件相同的目录下。修改它,如清单 16 所示。
  
清单 16. panels-sajax.php 的修改


___FCKpd___3            


  这个文件将检查通过 GET 提交的变量。请注意“panels”被发送给 sajax_import 函数。这应当是 GET 数组中 rs 变量的值。如果 $_GET['rs'] 的值是 panel,那么 panel_id 变量就包含在 $_GET['rsargs'][0] 中,这是发送给 x_panels 函数的第一个参数,由 Sajax 库自动生成。
  在返回适当的面板之前,代码必须输出两个字符(它们好像是 Sajax 库的一个 bug)。这两个字符不会在显示的 Web 页面的 HTML 源代码中出现。接下来,必须用 $_GET['rsargs'][0] 替换剩下的到 $_GET['panel_id'] 的引用。最后,需要把导航链接修改成看起来与 sajax-app.php 文件中修改的链接一样。把对 loadHTML 的调用换成 getPanel,要像以前一样传递 ID。
  
图 5. 集成了 Sajax 后 PHP 应用程序的浏览器输出示例

图片URL:https://www6.software.ibm.com/developerworks/cn/education/opensource/os-phpajax/fig05.jpg



  应用程序的行为和输出示例如图 5 所示,与使用 Ajax 时的输出相同。
  

  结束语
  恭喜!您用 PHP 创建了 Ajax 应用程序并把它与 Sajax 成功地集成。这个应用程序(以及日后的异步 JavaScript 应用程序)会给使用它的那些人节约许多带宽和等候页面重载的时间,因为不必为每次点击都载入整个页面,只需载入必要的内容。这将使创建交互丰富的应用程序变得更为普遍。
  

下载
Source code for the PHP application:
ftp://www6.software.ibm.com/software/developer/library/os-phpajax.sajax.source.zip


  说明:
本文来自:http://www.ibm.com/developerworks/cn/views/opensource/tutorials.jsp?cv_doc_id=109065
版权归属IBM所有,本Blog只是处于转载学习更多技术目的
GET['rsargs'][0]
- 1;           if($panel_id_prev > = 0){print("getPanel(".$panel_id_prev.")/">Previous Panel ");...print("getPanel(".$panel_id_next.")/">Next Panel");...            


  这个文件将检查通过 GET 提交的变量。请注意“panels”被发送给 sajax_import 函数。这应当是 GET 数组中 rs 变量的值。如果 $_GET['rs'] 的值是 panel,那么 panel_id 变量就包含在 $_GET['rsargs'][0] 中,这是发送给 x_panels 函数的第一个参数,由 Sajax 库自动生成。
  在返回适当的面板之前,代码必须输出两个字符(它们好像是 Sajax 库的一个 bug)。这两个字符不会在显示的 Web 页面的 HTML 源代码中出现。接下来,必须用 $_GET['rsargs'][0] 替换剩下的到 $_GET['panel_id'] 的引用。最后,需要把导航链接修改成看起来与 sajax-app.php 文件中修改的链接一样。把对 loadHTML 的调用换成 getPanel,要像以前一样传递 ID。
  
图 5. 集成了 Sajax 后 PHP 应用程序的浏览器输出示例

图片URL:https://www6.software.ibm.com/developerworks/cn/education/opensource/os-phpajax/fig05.jpg



  应用程序的行为和输出示例如图 5 所示,与使用 Ajax 时的输出相同。
  

  结束语
  恭喜!您用 PHP 创建了 Ajax 应用程序并把它与 Sajax 成功地集成。这个应用程序(以及日后的异步 JavaScript 应用程序)会给使用它的那些人节约许多带宽和等候页面重载的时间,因为不必为每次点击都载入整个页面,只需载入必要的内容。这将使创建交互丰富的应用程序变得更为普遍。
  

下载
Source code for the PHP application:
ftp://www6.software.ibm.com/software/developer/library/os-phpajax.sajax.source.zip


  说明:
本文来自:http://www.ibm.com/developerworks/cn/views/opensource/tutorials.jsp?cv_doc_id=109065
版权归属IBM所有,本Blog只是处于转载学习更多技术目的

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-360331-1-1.html 上篇帖子: PHP开发者必不可少的五个发展要素 下篇帖子: php创建短ID Create short IDs with PHP
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表