最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用PHPRPC實(shí)現(xiàn)Ajax安全登錄第1/2頁(yè)

 更新時(shí)間:2011年10月31日 23:00:10   作者:  
PHPRPC 是一個(gè)輕型的、安全的、跨網(wǎng)際的、跨語(yǔ)言的、跨平臺(tái)的、跨環(huán)境的、跨域的、支持復(fù)雜對(duì)象傳輸?shù)?、支持引用參?shù)傳遞的、支持內(nèi)容輸出重定向的、支持分級(jí)錯(cuò)誤處理的、支持會(huì)話的、面向服務(wù)的高性能遠(yuǎn)程過(guò)程調(diào)用協(xié)議。
PHPRPC 與其它 ajax 框架不同,PHPRPC 遵循的是“只做一件事,并把它做好”的原則。它只負(fù)責(zé)數(shù)據(jù)傳輸,并且將傳輸做到最好!它將你以前用傳統(tǒng)的 ajax 方式做不到或者很難做到的事情變得輕而易舉!
相信好多人選擇 PHPRPC 的一個(gè)主要原因就是它能夠讓你開(kāi)發(fā) ajax 應(yīng)用變得更加容易!盡管 PHPRPC 的強(qiáng)大之處不僅限于此,但我不得不承認(rèn),這確實(shí)是 PHPRPC 的一大亮點(diǎn)!
所以,我們的第一站,就來(lái)看看如何用 PHPRPC 3.0 來(lái)編寫(xiě) ajax 應(yīng)用吧。

下 面我們舉一個(gè)最簡(jiǎn)單的例子(甚至可以算是無(wú)聊的例子 :mrgreen: )來(lái)說(shuō)明如何使用 PHPRPC 3.0 編寫(xiě) ajax 應(yīng)用。這個(gè)例子很好的說(shuō)明了上面所提到的 MVC 模式如何具體的工作。這里我們先以 PHP 為服務(wù)器端的情況為例來(lái)說(shuō)明。我們的第一個(gè)例子很簡(jiǎn)單,客戶端輸入一段字符串,然后服務(wù)器端計(jì)算出它的 SHA1 值。
復(fù)制代碼 代碼如下:

<?php
require_once("../php/phprpc_server.php");
$server = new PHPRPC_Server();
$server->add("sha1");
$server->start();
?>

只有這么簡(jiǎn)單的 4 行代碼,就把 PHP 內(nèi)置的 sha1 函數(shù)發(fā)布了?,F(xiàn)在,客戶端可以直接使用這個(gè)函數(shù)了。
復(fù)制代碼 代碼如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>計(jì)算 SHA1</title>
<script type="text/javascript" src="../js/compressed/phprpc_client.js"></script>
<script type="text/javascript">
var rpc = new PHPRPC_Client('sha1.php', ['sha1']);
function $(id) {
return document.getElementById(id);
}
function showResult(result) {
$('sha1').value = result;
}
function sha1() {
var input = $('sha1').value;
$('sha1').value = "Loading...";
rpc.sha1(input, showResult);
}
</script>
</head>
<body>
<input type="text" id="sha1" />
<input type="button" value="計(jì)算 SHA1" onclick="sha1()" />
</body>
</html>

這個(gè)例子非常簡(jiǎn)單,并且跟 PHPRPC 有關(guān)的只有兩條語(yǔ)句,一條是:
復(fù)制代碼 代碼如下:

var rpc = new PHPRPC_Client('sha1.php', ['sha1']);

這條語(yǔ)句用來(lái)創(chuàng)建一個(gè) PHPRPC_Client 對(duì)象,第一個(gè)參數(shù)是服務(wù)器地址,這里可以用相對(duì)路徑,也可以用絕對(duì)路徑。
而且這個(gè)路徑可以跨域!因此你可以做跨域的應(yīng)用!
第二個(gè)參數(shù)是你需要使用的服務(wù)器端的函數(shù)名列表,所以,雖然我們這里只有一個(gè)函數(shù),也要寫(xiě)成數(shù)組的形式。這樣我們就有了一個(gè)可以調(diào)用服務(wù)器端方法的客戶端對(duì)象了。
那該如何調(diào)用呢?我們來(lái)看第二條關(guān)于 PHPRPC 的語(yǔ)句:
復(fù)制代碼 代碼如下:

rpc.sha1(input, showResult);

這條語(yǔ)句相當(dāng)簡(jiǎn)單,你會(huì)發(fā)現(xiàn)我們直接使用了服務(wù)器端發(fā)布的函數(shù)名作為 rpc 對(duì)象的一個(gè)方法來(lái)調(diào)用。它的第一個(gè)參數(shù)就是 sha1 函數(shù)的參數(shù)值。第二個(gè)參數(shù)是個(gè)函數(shù),這個(gè)是回調(diào)函數(shù),也就是說(shuō),當(dāng)服務(wù)器端方法執(zhí)行完之后就會(huì)自動(dòng)調(diào)用這個(gè)函數(shù)來(lái)完成結(jié)果的處理。它是在前面定義的,你會(huì) 發(fā)現(xiàn)它有一個(gè)參數(shù) result,這個(gè)參數(shù)就是我們的遠(yuǎn)程過(guò)程 sha1 的返回值,它是通過(guò)回調(diào)函數(shù)的這個(gè)參數(shù)傳入的。

相關(guān)文章

最新評(píng)論

乌审旗| 象州县| 嘉峪关市| 元江| 塘沽区| 靖宇县| 太谷县| 房山区| 永济市| 松溪县| 上杭县| 苏尼特右旗| 来凤县| 壤塘县| 安阳市| 南开区| 寿阳县| 富宁县| 婺源县| 衢州市| 泸水县| 遂川县| 博野县| 任丘市| 吉隆县| 怀远县| 沙坪坝区| 金湖县| 万宁市| 靖边县| 明光市| 突泉县| 志丹县| 策勒县| 辽源市| 建湖县| 呼玛县| 富宁县| 峨山| 崇文区| 延边|