DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> AJAX入門 >> AJAX詳解 >> 通過 PHP 和 Sajax 使用 Ajax(三)
通過 PHP 和 Sajax 使用 Ajax(三)
編輯:AJAX詳解     

通過 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();
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHtml 1.0 Transitional//EN"
...


首先,需要設置遠程 URL。然後需要初始化 Sajax 並導出“panels”。這對 SAJax 進行初始化,允許稍後創建的 JavaScript 函數去處理與“panels”內容相關的請求。


修改鏈接

鏈接現在需要包含函數,以便把面板 ID 傳遞給對應的 JavaScript 函數。


清單 14. 應用程序中的面板鏈接

     
<?PHP require('content/header.Html'); ?>

<span >Managing content</span>
<?PHP require('content/between-link.Html'); ?>

<span >Adding content</span>
<?PHP require('content/between-link.Html'); ?>

<span >Saving new content</span>
<?PHP require('content/between-link.Html'); ?>

<span >Editing content</span>
<?PHP require('content/between-link.Html'); ?>

<span >Saving edited content</span>
<?PHP require('content/between-link.Html'); ?>

<span >Avoid adding duplicates</span>
<?PHP require('content/between-link.Html'); ?>

<span >Avoid editing a page
                            that doesn't exist</span>
<?PHP require('content/between-link.Html'); ?>

<span >Deleting content</span>
<?PHP require('content/between-link.Html'); ?>

<span >Serving a page</span>
<?PHP require('content/between-link.Html'); ?>

<span >Pulling it together:
                            The CMS control page</span>

<?PHP require('content/pre-content.Html'); ?>
...

點擊鏈接會調用一個不同的 JavaScript 函數,接下來會添加這個函數。

替換 JavaScript

在繼續之前,請從 AJax 應用程序刪除 JavaScrip。需要添加新的函數,這些新函數和 XML HTTP 對象無關。添加以下代碼代替當前的 JavaScript 函數:


清單 15. 新的 JavaScript 函數

     
...
<script type="text/Javascript">
    <?PHP sAJax_show_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 的修改

     
<?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

     
<?
require("SAJax.PHP");

$sAJax_remote_uri =
    "http://localhost.localdomain/ajax-sajax/panels-sAJax.PHP";
sAJax_init();
sAJax_export("panels");
sAJax_handle_clIEnt_request();
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHtml 1.0 Transitional//EN"
...
 

首先,需要設置遠程 URL。然後需要初始化 Sajax 並導出“panels”。這對 SAJax 進行初始化,允許稍後創建的 JavaScript 函數去處理與“panels”內容相關的請求。

修改鏈接
鏈接現在需要包含函數,以便把面板 ID 傳遞給對應的 JavaScript 函數。
清單 14. 應用程序中的面板鏈接

     
<?PHP require('content/header.Html'); ?>

<span >Managing content</span>
<?PHP require('content/between-link.Html'); ?>

<span >Adding content</span>
<?PHP require('content/between-link.Html'); ?>

<span >Saving new content</span>
<?PHP require('content/between-link.Html'); ?>

<span >Editing content</span>
<?PHP require('content/between-link.Html'); ?>

<span >Saving edited content</span>
<?PHP require('content/between-link.Html'); ?>

<span >Avoid adding duplicates</span>
<?PHP require('content/between-link.Html'); ?>

<span >Avoid editing a page
                            that doesn't exist</span>
<?PHP require('content/between-link.Html'); ?>

<span >Deleting content</span>
<?PHP require('content/between-link.Html'); ?>

<span >Serving a page</span>
<?PHP require('content/between-link.Html'); ?>

<span >Pulling it together:
                            The CMS control page</span>

<?PHP require('content/pre-content.Html'); ?>
...
 
點擊鏈接會調用一個不同的 JavaScript 函數,接下來會添加這個函數。
 
替換 JavaScript
在繼續之前,請從 AJax 應用程序刪除 JavaScrip。需要添加新的函數,這些新函數和 XML HTTP 對象無關。添加以下代碼代替當前的 JavaScript 函數:
清單 15. 新的 JavaScript 函數

     
...
<script type="text/Javascript">
    <?PHP sAJax_show_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
應用程序的行為和輸出示例如圖 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();
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHtml 1.0 Transitional//EN"
...
 

首先,需要設置遠程 URL。然後需要初始化 Sajax 並導出“panels”。這對 SAJax 進行初始化,允許稍後創建的 JavaScript 函數去處理與“panels”內容相關的請求。

修改鏈接
鏈接現在需要包含函數,以便把面板 ID 傳遞給對應的 JavaScript 函數。
清單 14. 應用程序中的面板鏈接

     
<?PHP require('content/header.Html'); ?>

<span >Managing content</span>
<?PHP require('content/between-link.Html'); ?>

<span >Adding content</span>
<?PHP require('content/between-link.Html'); ?>

<span >Saving new content</span>
<?PHP require('content/between-link.Html'); ?>

<span >Editing content</span>
<?PHP require('content/between-link.Html'); ?>

<span >Saving edited content</span>
<?PHP require('content/between-link.Html'); ?>

<span >Avoid adding duplicates</span>
<?PHP require('content/between-link.Html'); ?>

<span >Avoid editing a page
                            that doesn't exist</span>
<?PHP require('content/between-link.Html'); ?>

<span >Deleting content</span>
<?PHP require('content/between-link.Html'); ?>

<span >Serving a page</span>
<?PHP require('content/between-link.Html'); ?>

<span >Pulling it together:
                            The CMS control page</span>

<?PHP require('content/pre-content.Html'); ?>
...
 
點擊鏈接會調用一個不同的 JavaScript 函數,接下來會添加這個函數。
 
替換 JavaScript
在繼續之前,請從 AJax 應用程序刪除 JavaScrip。需要添加新的函數,這些新函數和 XML HTTP 對象無關。添加以下代碼代替當前的 JavaScript 函數:
清單 15. 新的 JavaScript 函數

     
...
<script type="text/Javascript">
    <?PHP sAJax_show_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
應用程序的行為和輸出示例如圖 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();
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHtml 1.0 Transitional//EN"
...
 

首先,需要設置遠程 URL。然後需要初始化 Sajax 並導出“panels”。這對 SAJax 進行初始化,允許稍後創建的 JavaScript 函數去處理與“panels”內容相關的請求。

修改鏈接
鏈接現在需要包含函數,以便把面板 ID 傳遞給對應的 JavaScript 函數。
清單 14. 應用程序中的面板鏈接

     
<?PHP require('content/header.Html'); ?>

<span >Managing content</span>
<?PHP require('content/between-link.Html'); ?>

<span >Adding content</span>
<?PHP require('content/between-link.Html'); ?>

<span >Saving new content</span>
<?PHP require('content/between-link.Html'); ?>

<span >Editing content</span>
<?PHP require('content/between-link.Html'); ?>

<span >Saving edited content</span>
<?PHP require('content/between-link.Html'); ?>

<span >Avoid adding duplicates</span>
<?PHP require('content/between-link.Html'); ?>

<span >Avoid editing a page
                            that doesn't exist</span>
<?PHP require('content/between-link.Html'); ?>

<span >Deleting content</span>
<?PHP require('content/between-link.Html'); ?>

<span >Serving a page</span>
<?PHP require('content/between-link.Html'); ?>

<span >Pulling it together:
                            The CMS control page</span>

<?PHP require('content/pre-content.Html'); ?>
...
 
點擊鏈接會調用一個不同的 JavaScript 函數,接下來會添加這個函數。
 
替換 JavaScript
在繼續之前,請從 AJax 應用程序刪除 JavaScrip。需要添加新的函數,這些新函數和 XML HTTP 對象無關。添加以下代碼代替當前的 JavaScript 函數:
清單 15. 新的 JavaScript 函數

     
...
<script type="text/Javascript">
    <?PHP sAJax_show_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
應用程序的行為和輸出示例如圖 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();
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHtml 1.0 Transitional//EN"
...
 

首先,需要設置遠程 URL。然後需要初始化 Sajax 並導出“panels”。這對 SAJax 進行初始化,允許稍後創建的 JavaScript 函數去處理與“panels”內容相關的請求。

修改鏈接
鏈接現在需要包含函數,以便把面板 ID 傳遞給對應的 JavaScript 函數。
清單 14. 應用程序中的面板鏈接

     
<?PHP require('content/header.Html'); ?>

<span >Managing content</span>
<?PHP require('content/between-link.Html'); ?>

<span >Adding content</span>
<?PHP require('content/between-link.Html'); ?>

<span >Saving new content</span>
<?PHP require('content/between-link.Html'); ?>

<span >Editing content</span>
<?PHP require('content/between-link.Html'); ?>

<span >Saving edited content</span>
<?PHP require('content/between-link.Html'); ?>

<span >Avoid adding duplicates</span>
<?PHP require('content/between-link.Html'); ?>

<span >Avoid editing a page
                            that doesn't exist</span>
<?PHP require('content/between-link.Html'); ?>

<span >Deleting content</span>
<?PHP require('content/between-link.Html'); ?>

<span >Serving a page</span>
<?PHP require('content/between-link.Html'); ?>

<span >Pulling it together:
                            The CMS control page</span>

<?PHP require('content/pre-content.Html'); ?>
...
 
點擊鏈接會調用一個不同的 JavaScript 函數,接下來會添加這個函數。
 
替換 JavaScript
在繼續之前,請從 AJax 應用程序刪除 JavaScrip。需要添加新的函數,這些新函數和 XML HTTP 對象無關。添加以下代碼代替當前的 JavaScript 函數:
清單 15. 新的 JavaScript 函數

     
...
<script type="text/Javascript">
    <?PHP sAJax_show_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
應用程序的行為和輸出示例如圖 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();
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHtml 1.0 Transitional//EN"
...
 

首先,需要設置遠程 URL。然後需要初始化 Sajax 並導出“panels”。這對 SAJax 進行初始化,允許稍後創建的 JavaScript 函數去處理與“panels”內容相關的請求。

修改鏈接
鏈接現在需要包含函數,以便把面板 ID 傳遞給對應的 JavaScript 函數。
清單 14. 應用程序中的面板鏈接

     
<?PHP require('content/header.Html'); ?>

<span >Managing content</span>
<?PHP require('content/between-link.Html'); ?>

<span >Adding content</span>
<?PHP require('content/between-link.Html'); ?>

<span >Saving new content</span>
<?PHP require('content/between-link.Html'); ?>

<span >Editing content</span>
<?PHP require('content/between-link.Html'); ?>

<span >Saving edited content</span>
<?PHP require('content/between-link.Html'); ?>

<span >Avoid adding duplicates</span>
<?PHP require('content/between-link.Html'); ?>

<span >Avoid editing a page
                            that doesn't exist</span>
<?PHP require('content/between-link.Html'); ?>

<span >Deleting content</span>
<?PHP require('content/between-link.Html'); ?>

<span >Serving a page</span>
<?PHP require('content/between-link.Html'); ?>

<span >Pulling it together:
                            The CMS control page</span>

<?PHP require('content/pre-content.Html'); ?>
...
 
點擊鏈接會調用一個不同的 JavaScript 函數,接下來會添加這個函數。
 
替換 JavaScript
在繼續之前,請從 AJax 應用程序刪除 JavaScrip。需要添加新的函數,這些新函數和 XML HTTP 對象無關。添加以下代碼代替當前的 JavaScript 函數:
清單 15. 新的 JavaScript 函數

     
...
<script type="text/Javascript">
    <?PHP sAJax_show_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
應用程序的行為和輸出示例如圖 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("
<span onclick=\"getPanel(".$panel_id_prev.")\">Previous Panel</span>
");
...
 print("
<span onclick=\"getPanel(".$panel_id_next.")\">Next Panel</span>
");
...

這個文件將檢查通過 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

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved