原來認(rèn)為寫一個(gè)留言板應(yīng)該是比較容易的事情,從沒動(dòng)過手,這回試著寫了一個(gè),感覺即容易也不容易。
容易的方面是留言板的結(jié)構(gòu)很簡(jiǎn)單,發(fā)送數(shù)據(jù)到服務(wù)器->保存到數(shù)據(jù)庫(kù)->返回新的數(shù)據(jù)到瀏覽器->刷新頁(yè)面
不容易的地方是很多細(xì)節(jié)要注意,不知道什么地方一個(gè)小問題就出錯(cuò)了。
這個(gè)留言板前臺(tái)使用 Flex ,文件二百多K,初次加載比較慢,運(yùn)行起來就快了。后臺(tái)使用 PHP ,用了 Codeigniter 框架,再加上大部分工作都有前臺(tái)做,整個(gè)后臺(tái)代碼不到二十行。
前后臺(tái)通信使用最簡(jiǎn)單的 http 頁(yè)面方式,數(shù)據(jù)用 JSON 包裝,JSON 極大的簡(jiǎn)化了工作流程,從數(shù)據(jù)庫(kù)取出數(shù)據(jù),轉(zhuǎn)換成對(duì)象數(shù)組,把數(shù)組編碼成字符串,寫到頁(yè)面,整個(gè)過程就OK了,到了前臺(tái)再將這些字符串一解析,又還原成了對(duì)象。
看看返回的數(shù)據(jù)到底是什么樣子,點(diǎn)擊下面這個(gè)鏈接你可以看到 0 號(hào)頁(yè)面返回的內(nèi)容,有一些百分號(hào)之類的東西,那是因?yàn)樗凶址季幋a了:
http://myqiao.oxyhost.com/ci/index.php/bbs/action_show/0
下面看看代碼是如何的簡(jiǎn)單吧
function show($page_no)
{
//計(jì)算分頁(yè)數(shù)
$record_count=$this->db->count_all('t_message');
$page_count= Floor(($record_count-1)/PAGE_SIZE);
if($page_count<0)
$page_count=0;
//查詢當(dāng)前頁(yè)面留言
$this->db->order_by("id", "desc");
$query = $this->db->get('t_message', 10, 10*$page_no);
//將前臺(tái)需要的數(shù)據(jù)裝配成數(shù)組
$arr = array(
//當(dāng)前頁(yè)面號(hào)
'current_no' => "{$page_no}" ,
'page_count' =>"{$page_count}" ,
'record_count' =>"{$record_count}" ,
//下面字段保存10條留言信息,包括username , content, time
'message' => $query->result_array()
);
$json_string=$this->json->encode($arr);
echo $json_string;
}
留言板試用和查看全部源代碼:點(diǎn)擊這里
進(jìn)入留言板,點(diǎn)右鍵,彈出菜單選擇 View Source 就可以看見源代碼了
服務(wù)器是國(guó)外的一個(gè)免費(fèi) php 服務(wù)器,可能速度有點(diǎn)慢,大家發(fā)現(xiàn)什么錯(cuò)誤給我留言哦。