這裏顯示兩個版本的差異處。
Both sides previous revision 前次修改 下次修改 | 前次修改 | ||
webdesign:head_rush_ajax_appendix [2007/03/04 17:50] wenpei |
webdesign:head_rush_ajax_appendix [2007/03/04 18:00] (目前版本) wenpei |
||
---|---|---|---|
行 1: | 行 1: | ||
====== Head Rush Ajax 讀書筆記 ====== | ====== Head Rush Ajax 讀書筆記 ====== | ||
- | ===== Chapter Five ===== | + | ===== Appendix 1 ===== |
- | Ajax 工具包 | + | ===== Ajax 工具包 ===== |
==== Prototype ==== | ==== Prototype ==== | ||
http://prototype.conio.net | http://prototype.conio.net | ||
行 59: | 行 59: | ||
</code> | </code> | ||
- | JavaScript 程式庫,建立使用者介面。 | + | ===== JavaScript 程式庫,建立使用者介面。 ===== |
==== script.aculo.us ==== | ==== script.aculo.us ==== | ||
http://script.aculo.us | http://script.aculo.us | ||
行 75: | 行 74: | ||
<script type="text/javascript" src="util.js"> </script> | <script type="text/javascript" src="util.js"> </script> | ||
+ | ===== JSON-PHP ===== | ||
+ | http://mike.teczno.com/json.html | ||
+ | |||
+ | <code> | ||
+ | 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); | ||
+ | </code> | ||
+ | |||
+ | ===== JSON 剖析器 ===== | ||
+ | eval() 直接執行伺服器傳回來的 JSON 回應,沒有考慮到安全問題。 | ||
+ | |||
+ | 使用 JSON 剖析器,避免在 JavaScript 中使用 eval()。 | ||
+ | |||
+ | http://www.json.org/js.html | ||
+ | |||
+ | var jsonData = JSON.parse(request.resonseText); | ||
+ | |||
+ | JSON 剖析器只接受字串輸入,JSON.parse() 將伺服器回應字串當參數,轉變成物件。 |