[转] 通过 PHP 和 Sajax 使用 Ajax(三)

news/2024/7/5 6:23:34

 

通过 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

					
           

首先,需要设置远程 URL。然后需要初始化 Sajax 并导出“panels”。这对 Sajax 进行初始化,允许稍后创建的 JavaScript 函数去处理与“panels”内容相关的请求。


修改链接

链接现在需要包含函数,以便把面板 ID 传递给对应的 JavaScript 函数。


清单 14. 应用程序中的面板链接

					
           "getPanel(0)">Managing content
           "getPanel(1)" >Adding content
           "getPanel(2)" >Saving new content
           "getPanel(3)" >Editing content
           "getPanel(4)" >Saving edited content
           "getPanel(5)" >Avoid adding duplicates
           "getPanel(6)" >Avoid editing a page                            that doesn't exist
           "getPanel(7)" >Deleting content
           "getPanel(8)" >Serving a page
           "getPanel(9)">Pulling it together:                            The CMS control page
           ...

点击链接会调用一个不同的 JavaScript 函数,接下来会添加这个函数。

 

替换 JavaScript

在继续之前,请从 Ajax 应用程序删除 JavaScrip。需要添加新的函数,这些新函数和 XML HTTP 对象无关。添加以下代码代替当前的 JavaScript 函数:


清单 15. 新的 JavaScript 函数

					...<script type="text/javascript">    
                 function getPanel_cb(content) {        document.getElementById('content').innerHTML = content;    }    function getPanel(panel_id){        x_panels(panel_id, getPanel_cb);    }</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 的修改

					
           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

					
                      

首先,需要设置远程 URL。然后需要初始化 Sajax 并导出“panels”。这对 Sajax 进行初始化,允许稍后创建的 JavaScript 函数去处理与“panels”内容相关的请求。


修改链接

链接现在需要包含函数,以便把面板 ID 传递给对应的 JavaScript 函数。


清单 14. 应用程序中的面板链接

					
                      "getPanel(0)">Managing content
                      "getPanel(1)" >Adding content
                      "getPanel(2)" >Saving new content
                      "getPanel(3)" >Editing content
                      "getPanel(4)" >Saving edited content
                      "getPanel(5)" >Avoid adding duplicates
                      "getPanel(6)" >Avoid editing a page                            that doesn't exist
                      "getPanel(7)" >Deleting content
                      "getPanel(8)" >Serving a page
                      "getPanel(9)">Pulling it together:                            The CMS control page
                      ...

点击链接会调用一个不同的 JavaScript 函数,接下来会添加这个函数。

 

替换 JavaScript

在继续之前,请从 Ajax 应用程序删除 JavaScrip。需要添加新的函数,这些新函数和 XML HTTP 对象无关。添加以下代码代替当前的 JavaScript 函数:


清单 15. 新的 JavaScript 函数

					...<script type="text/javascript">    
                            function getPanel_cb(content) {        document.getElementById('content').innerHTML = content;    }    function getPanel(panel_id){        x_panels(panel_id, getPanel_cb);    }</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

集成了 Sajax 后 PHP 应用程序的浏览器输出示例

应用程序的行为和输出示例如图 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

					
                       

首先,需要设置远程 URL。然后需要初始化 Sajax 并导出“panels”。这对 Sajax 进行初始化,允许稍后创建的 JavaScript 函数去处理与“panels”内容相关的请求。


修改链接

链接现在需要包含函数,以便把面板 ID 传递给对应的 JavaScript 函数。


清单 14. 应用程序中的面板链接

					
                       "getPanel(0)">Managing content
                       "getPanel(1)" >Adding content
                       "getPanel(2)" >Saving new content
                       "getPanel(3)" >Editing content
                       "getPanel(4)" >Saving edited content
                       "getPanel(5)" >Avoid adding duplicates
                       "getPanel(6)" >Avoid editing a page                            that doesn't exist
                       "getPanel(7)" >Deleting content
                       "getPanel(8)" >Serving a page
                       "getPanel(9)">Pulling it together:                            The CMS control page
                       ...

点击链接会调用一个不同的 JavaScript 函数,接下来会添加这个函数。

 

替换 JavaScript

在继续之前,请从 Ajax 应用程序删除 JavaScrip。需要添加新的函数,这些新函数和 XML HTTP 对象无关。添加以下代码代替当前的 JavaScript 函数:


清单 15. 新的 JavaScript 函数

					...<script type="text/javascript">    
                             function getPanel_cb(content) {        document.getElementById('content').innerHTML = content;    }    function getPanel(panel_id){        x_panels(panel_id, getPanel_cb);    }</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

集成了 Sajax 后 PHP 应用程序的浏览器输出示例

应用程序的行为和输出示例如图 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

					
                       

首先,需要设置远程 URL。然后需要初始化 Sajax 并导出“panels”。这对 Sajax 进行初始化,允许稍后创建的 JavaScript 函数去处理与“panels”内容相关的请求。


修改链接

链接现在需要包含函数,以便把面板 ID 传递给对应的 JavaScript 函数。


清单 14. 应用程序中的面板链接

					
                       "getPanel(0)">Managing content
                       "getPanel(1)" >Adding content
                       "getPanel(2)" >Saving new content
                       "getPanel(3)" >Editing content
                       "getPanel(4)" >Saving edited content
                       "getPanel(5)" >Avoid adding duplicates
                       "getPanel(6)" >Avoid editing a page                            that doesn't exist
                       "getPanel(7)" >Deleting content
                       "getPanel(8)" >Serving a page
                       "getPanel(9)">Pulling it together:                            The CMS control page
                       ...

点击链接会调用一个不同的 JavaScript 函数,接下来会添加这个函数。

 

替换 JavaScript

在继续之前,请从 Ajax 应用程序删除 JavaScrip。需要添加新的函数,这些新函数和 XML HTTP 对象无关。添加以下代码代替当前的 JavaScript 函数:


清单 15. 新的 JavaScript 函数

					...<script type="text/javascript">    
                             function getPanel_cb(content) {        document.getElementById('content').innerHTML = content;    }    function getPanel(panel_id){        x_panels(panel_id, getPanel_cb);    }</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

集成了 Sajax 后 PHP 应用程序的浏览器输出示例

应用程序的行为和输出示例如图 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

					
                       

首先,需要设置远程 URL。然后需要初始化 Sajax 并导出“panels”。这对 Sajax 进行初始化,允许稍后创建的 JavaScript 函数去处理与“panels”内容相关的请求。


修改链接

链接现在需要包含函数,以便把面板 ID 传递给对应的 JavaScript 函数。


清单 14. 应用程序中的面板链接

					
                       "getPanel(0)">Managing content
                       "getPanel(1)" >Adding content
                       "getPanel(2)" >Saving new content
                       "getPanel(3)" >Editing content
                       "getPanel(4)" >Saving edited content
                       "getPanel(5)" >Avoid adding duplicates
                       "getPanel(6)" >Avoid editing a page                            that doesn't exist
                       "getPanel(7)" >Deleting content
                       "getPanel(8)" >Serving a page
                       "getPanel(9)">Pulling it together:                            The CMS control page
                       ...

点击链接会调用一个不同的 JavaScript 函数,接下来会添加这个函数。

 

替换 JavaScript

在继续之前,请从 Ajax 应用程序删除 JavaScrip。需要添加新的函数,这些新函数和 XML HTTP 对象无关。添加以下代码代替当前的 JavaScript 函数:


清单 15. 新的 JavaScript 函数

					...<script type="text/javascript">    
                             function getPanel_cb(content) {        document.getElementById('content').innerHTML = content;    }    function getPanel(panel_id){        x_panels(panel_id, getPanel_cb);    }</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

集成了 Sajax 后 PHP 应用程序的浏览器输出示例

应用程序的行为和输出示例如图 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

					
                       

首先,需要设置远程 URL。然后需要初始化 Sajax 并导出“panels”。这对 Sajax 进行初始化,允许稍后创建的 JavaScript 函数去处理与“panels”内容相关的请求。


修改链接

链接现在需要包含函数,以便把面板 ID 传递给对应的 JavaScript 函数。


清单 14. 应用程序中的面板链接

					
                       "getPanel(0)">Managing content
                       "getPanel(1)" >Adding content
                       "getPanel(2)" >Saving new content
                       "getPanel(3)" >Editing content
                       "getPanel(4)" >Saving edited content
                       "getPanel(5)" >Avoid adding duplicates
                       "getPanel(6)" >Avoid editing a page                            that doesn't exist
                       "getPanel(7)" >Deleting content
                       "getPanel(8)" >Serving a page
                       "getPanel(9)">Pulling it together:                            The CMS control page
                       ...

点击链接会调用一个不同的 JavaScript 函数,接下来会添加这个函数。

 

替换 JavaScript

在继续之前,请从 Ajax 应用程序删除 JavaScrip。需要添加新的函数,这些新函数和 XML HTTP 对象无关。添加以下代码代替当前的 JavaScript 函数:


清单 15. 新的 JavaScript 函数

					...<script type="text/javascript">    
                             function getPanel_cb(content) {        document.getElementById('content').innerHTML = content;    }    function getPanel(panel_id){        x_panels(panel_id, getPanel_cb);    }</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

集成了 Sajax 后 PHP 应用程序的浏览器输出示例

应用程序的行为和输出示例如图 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

集成了 Sajax 后 PHP 应用程序的浏览器输出示例

应用程序的行为和输出示例如图 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只是处于转载学习更多技术目的

 





http://www.niftyadmin.cn/n/3652448.html

相关文章

23_7第一周LeetCode刷题回顾

目录 1. 两数之和2. 两数相加3.无重复字符的最长子串4.寻找两个正序数组的中位数5.最长回文子串6.N 形变换7.整数反转8.字符串转整数&#xff08;atoi&#xff09;9.回文数10. 正则表达式匹配11. 盛最多水的容器12. 整数转罗马数字13. 罗马数字转整数14. 最长公共前缀15.三数之…

【计算机网络】思科实验(2):交换机间的VLAN通信

系列文章目录 【计算机网络】思科实验(1)&#xff1a;交换机的VLAN划分 【计算机网络】思科实验(2)&#xff1a;交换机间的VLAN通信 【计算机网络】思科实验(3)&#xff1a;使用三层交换机实现跨VLAN间的通信 【计算机网络】思科实验(4)&#xff1a;综合实验作业之办公室的…

[转]通过 PHP 和 Sajax 使用 Ajax (一)

通过 PHP 和 Sajax 使用 Ajax &#xff08;一&#xff09;简单 Ajax 工具包如何把服务器端 PHP 与 JavaScript 集成Tyler Anderson , 自由作者, Stexar 公司2006 年 05 月 11 日多年以来&#xff0c;创建真正具有响应性的 Web 应用程序这一目标一直被 Web 开发的一个简单事实所…

[转]Windows平台九点提升权限终极技巧

//文章不错&#xff0c;我看了后觉得对于系统管理员来讲能够更好的防范这种渗透攻击&#xff0c;提升系统安全性能转自http://blog.hackbase.com/cat提升权限终极技巧作者&#xff1a;黑狼个人总结如下&#xff1a;1: C:/Documents and Settings/All Users/Application Data/Sy…

【计算机网络】思科实验(3):使用三层交换机实现跨VLAN间的通信

系列文章目录 【计算机网络】思科实验(1)&#xff1a;交换机的VLAN划分 【计算机网络】思科实验(2)&#xff1a;交换机间的VLAN通信 【计算机网络】思科实验(3)&#xff1a;使用三层交换机实现跨VLAN间的通信 【计算机网络】思科实验(4)&#xff1a;综合实验作业之办公室的…

[转]PHP 序列化(serialize)格式详解

由 andot 写的非常经典介绍PHP序列化的文章&#xff0c;原文来自&#xff1a; http://www.coolcode.cn/?p1701&#xff0e;前言PHP &#xff08;从 PHP 3.05 开始&#xff09;为保存对象提供了一组序列化和反序列化的函数&#xff1a;serialize、unserialize。不过在 PHP 手册…

【计算机网络】思科实验(4):综合实验作业之办公室的跨VLAN通信

系列文章目录 【计算机网络】思科实验(1)&#xff1a;交换机的VLAN划分 【计算机网络】思科实验(2)&#xff1a;交换机间的VLAN通信 【计算机网络】思科实验(3)&#xff1a;使用三层交换机实现跨VLAN间的通信 【计算机网络】思科实验(4)&#xff1a;综合实验作业之办公室的…

[转] 转一个SQL Ralay数据库连接池的PHP操作类

转一个由于 秋衫客的一亩三分地 上看的一个由秋衫客写的SQL Ralay数据库连接池的PHP操作类&#xff0c;给那些想利用SQL Ralay 做连接池的同志们。&#xff08;好像只支持Sybase&#xff0c;不过应该很简单的就能够支持Mysql、Oracle等&#xff09;关于SQL Relay的介绍看这里&a…