關於ajax局部刷新,從數據庫實時更新數據到消息框(通知框),一般是下訂單後發送消息到後臺,這個後臺的消息(或者通知)是實時更新的,就需要用到局部刷新。
思路:
1、要提交到後臺審覈,就應該有一個狀態值,所以數據庫中應該有對應的存取狀態的字段‘status’,用戶提交過來的數據是未審覈的,後臺會根據這個字段做查詢取出數據並展示到消息框中
2.“實時”者就是要刷新,就是要定時,要定時的去查詢數據庫中未審覈狀態的數據,如果有就取出來放到消息框中
3,這個消息圖標在頁面中佔很小的一塊,所以只是局部刷新就可以了
“刷新”這一關鍵字,用的最多的技術應該是ajax,但是之前總以爲ajax只能用來提交數據或者提交請求,從沒想過不發送請求只往回來取數據這一情況,最後也驗證了這種情況是行的通,下面是我寫的一個demo
JavaScript部分:
<script>
$(document).ready(function(){//定時
setInterval(function(){
$.ajax({
type:"POST",
dataType:"",
url:"__CONTROLLER__/ajx",
async:false,
cache:false,
timeout:3,
success:function(data){
var obj = eval("("+data+")");
var str='';
for(var i in obj){ //表示遍歷數組,
$("#res").empty(); //清空前一次刷新數據,不清除索表會出錯
str+='<p class="dropdown-header">'+obj[i].name+'</p>';//消息框
}
$("#res").append(str);
$("#strcunt").html(obj.length);
},
});
}, 3);
//
});
</script>PHP部分:
public function ajx(){
$model = M('nametest');
$res = $model -> where('status = 1')->select();
echo json_encode($res);
}
代碼肯定有需要改進的地方,希望有人能指出來共同學習。