使用者工具

網站工具


webdesign:head_rush_ajax_appendix

Head Rush Ajax 讀書筆記

Appendix 1

Ajax 工具包

Prototype

http://prototype.conio.net

<script type="text/javascript" src="prototype.js"> </script>
var request = new Ajax.Request(
  url,    // 請求所要送達的地方
  {
    method: 'get',    // GET or POST
    parameters: 'phone=1234567890&name=SARS',    // 名值對,送到伺服端
    onSuccess: updatePage,
    onFailure: reportError    // 發生錯誤時執行此回呼函式
  }
......
}

處理回應:
<code>
function updatePage(request) {
  var response = request.responseText;    // 不需要檢查備妥狀態和狀態碼,Prototype 會處理
}

Dojo

http://dojotoolkit.org

想使用「包裹」時,就在靜態 JavaScript 中執行 dojo.require(包裹名稱)。

dojo.io.bind 是 Dojo 包裹,含有 Ajax 相關程式碼和通用程式。

<script language="JavaScript" type="text/javascript">
  dojo.require("dojo.io.bind");
</script>

送出請求:

var arguments = {
  url: 'lookupCustomer.php',
  method: 'GET',
  content: 'phone=1234567890&name='SARS',
  error: reportError,
  load: updatePage
};

dojo.io.bind(arguments);

處理回應:

function updatePage(type, value, evt) {
  var response = value;    // 伺服器的回應
}

JavaScript 程式庫,建立使用者介面。

script.aculo.us

http://script.aculo.us

<script type="text/javascript" src="prototype.js"> </script>
<script type="text/javascript" src="scriptaculous.js"> </script>

Rico

http://openrico.org

<script type="text/javascript" src="prototype.js"> </script>
<script type="text/javascript" src="rico.js"> </script>
<script type="text/javascript" src="util.js"> </script>

JSON-PHP

http://mike.teczno.com/json.html

require_once('JSON.php');
$json = new Services_JSON();

$order1 = array('name' => 'SARS',
                'age' => 18 );
$order2 = array('name' => 'Kimble',
                'age' => 17 );

$orders = array('coffeeOrders' => array($order1, $order2) );
$output = $json->encode($orders);
print($output);

JSON 剖析器

eval() 直接執行伺服器傳回來的 JSON 回應,沒有考慮到安全問題。

使用 JSON 剖析器,避免在 JavaScript 中使用 eval()。

http://www.json.org/js.html

var jsonData = JSON.parse(request.resonseText);

JSON 剖析器只接受字串輸入,JSON.parse() 將伺服器回應字串當參數,轉變成物件。

webdesign/head_rush_ajax_appendix.txt · 上一次變更: 2007/03/04 18:00 由 wenpei