php實時刷新
㈠ php中如何實現實時更新數據呢jQuery
網頁一般是單向主動短鏈接,實時更新實在有些不便,即使一方掉線,另一方也不能及時感知。一般所謂的實時刷新,大多採用定時刷新(輪詢),或長輪詢的方式做,ajax用於更新數據確實是比較簡單方便的。
輪詢你就settimeout,長輪詢你就每次接收數據成功後,再來一次長輪詢。但你鏈接別人的數據,了解一下供應商的刷新機制、周期再做考慮。
當然這些都是偽實時,真的實時用http協議是不合適的,你得用flash插件做。而你用的是api供應商的東西,這條路就基本走不通了。
㈡ PHP中如何實時刷新並且更替顯示的數據
這邊是我剛做的項目中 模板是smarty使用jquery 實時刷新頁面 ,我也是菜鳥 ,僅供參考。
<script type="text/javascript">
var timelength = {/literal}{$vehicle_refresh}{literal} //定義刷新間隔
var timekeep = self.setInterval("autorefresh()",timelength); //將所要刷新函數定義給一個變數,你可能用不到。
function autorefresh(){
//這邊是你要刷新的數據內容 使用ajax從資料庫獲取就xing
}
㈢ php怎麼才能實現即時通訊
如下:
㈣ 如何編寫讓php頁面自動刷新
需要准備的材料分別是:電腦、php編輯器、瀏覽器。
1、首先,打開php編輯器,新建php文件,例如:index.php。
㈤ php 聊天室刷新問題
不刷新的聊天室,首先你保存內容的chat.txt文件要修改,要增加一列保存消息ID,這個ID是自動增加,永不重復的,不知道你現在的是怎麼設計,可以如下:
消息ID|說話人|說話對象|消息內容
有發送消息的程序修改這個文件,控制只保留10條內容,有人發消息時候,把消息放到文件最後,刪除文件前面的信息,文件最多10行,這個代碼並不復雜,你應該會寫的。
刷新框隱藏不顯示,反復刷新,每次刷新後把獲取的內容提交給消息框,例如刷新框的代碼可以如下:
<script type=text/javascript>
<?php
foreach (file('chat/chat.txt') as $line){
list($id,$from,$to,$msg)=explode('|',$line);
echo "msg_frame.add_msg($id,'$from','$to','$msg');\r\n";
//注意:msg_frame是消息框的名稱。
}
?>
</script>
消息框不刷新,編寫一個添加消息的函數,等著刷新框來調用,例如內容如下:
<div id=msg></div>
<script type=text/javascript>
var maxid=0;
function add_msg(id,from,to,msg){
if (id>maxid) {
maxid=id;
if (to=='') to='大家';
s='<p>'+from+'對'+to+'說:'+msg+'</p>';
document.getElementById('msg').innerHTML+=s;
}
}
</script>
㈥ php 網站怎麼做到,不刷新頁面,實時自動跟新數據
不刷新頁面更新數據,一般有兩個方法實現,都離不開JAVASCRIPT。現在最流行的就是AJAX,是用JS腳本連接資料庫更新數據,刷新頁面部分區域內容,不刷新整個網頁。另外一個是比較經典、但是兼容性更高的方法,設置一個隱藏的FRAME或者iFRAME幀,那個幀不斷刷新PHP頁面,頁面內容為改變可見幀內容的JS。
㈦ 怎麼用php刷新頁面
方法其實挺多的。以前比較常用的是iframe這樣來做。現在多了個ajax,所以一般情況下都是用的ajax。
第一種方法,ajax實現:
當然,ajax使用起來確實很簡單就可以實現,但是裡面的很多知識還是比較有點深的。我之前做頁面時間自動刷新的功能就是用的ajax。完整代碼是:
1.getTime.php:
代碼如下:
<?php
header("cache-control:no-cache,must-revalidate");
header("Content-Type:text/html;charset=utf-8");
$time = "2012-1-20 18:00:00";
$dt_element=explode(" ",$time);
$date_element=explode("-",$dt_element[0]);
$time_element=explode(":",$dt_element[1]);
$date = mktime($time_element[0],$time_element[1],$time_element[2],$date_element[1],$date_element[2],$date_element[0]);
$nowTime = time();
$showtime = date("北京時間Y年m月d日H:i:s",$date-$nowTime);
if($showtime<="北京時間1970年01月01日08:00:00"){
echo "happy new year";
}
echo $showtime;
2.zidong.php:
代碼如下:
</head>
<body>
<h1>Ajax動態顯示時間</h1>
<input type="button" value="開始顯示時間" id="go" onclick="start()" />
<p>當前時間:<font color="red"><span id="showtime"></span></font></p>
</body>
<script type="text/javascript">
var xmlHttp;
function createXMLHttpRequest(){
if(window.ActiveXObject){
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if(window.XMLHttpRequest){
xmlHttp = new XMLHttpRequest();
}
}
function start(){
createXMLHttpRequest();
var url="getTime.php";
xmlHttp.open("GET",url,true);
xmlHttp.onreadystatechange = callback;
xmlHttp.send(null);
}
function callback(){
if(xmlHttp.readyState == 4){
if(xmlHttp.status == 200){
document.getElementById("showtime").innerHTML = xmlHttp.responseText;
setTimeout("start()",1000);
}
}
}
</script>
</html>
在瀏覽器裡面直接訪問zidong.php就可以了,點擊裡面的按鈕就可以看到效果。
這個就是用ajax做的刷新頁面局部內容的小例子。你可能會懷疑:這裡面沒有跟資料庫交互啊?這還不簡單,直接在getTime.php頁面裡面操作就可以啦。
這種方法就不用多說了吧。至於ajax裡面的代碼是什麼意思,不要問我啦,我之前就說過,這裡面的ajax還是有點深的。
第二種方法:使用iframe方法實現。
不要給我說用PHP 的include可以啊。你去試試吧。可以,可以就不會有那麼多人在網路裡面問了。
這種方法呢說起來復雜,其實還是挺簡單的。說下原理吧:
要刷新的頁面中把要自動刷新的局部的代碼單獨拿出來,做成一個獨立的頁面,自動刷新有很多種方法:可以在這個獨立頁面中用javascript來控制,什麼setTimeout("start()",1000);啊或者setInterval("start()",1000);(每隔1秒刷新頁面)這樣,還可以用meta標簽實現:<meta http-equiv="Refresh" content="10">(每隔10秒刷新頁面)。這樣在原來的頁面中用iframe來將它調用過來。這樣就可以了。
㈧ 在PHP頁面怎麼實現定時刷新顯示內容
jquery+ajax可以很容易實現啊,通過settimeout(function(),5)去觸發函數就行,與通過點擊發送請求沒區別啊。
setInterval(function(){
jQuery.ajax({
type:"POST",
url:"111.php",
global:false,
dataType:"json",
data:"action=ajax",
success:function(data){
jQuery("p").html(data.shopid);
},
error:function()
{
alert("err:操作錯誤");
}
})
}, 2000);
php部分更簡單
if($_POST['action']=='ajax'){
$result=$db->get_one("select * from shtq_shop order by rand() limit 1");
echo json_encode($result);exit;
}
原理很簡單 setInterval() 定時執行一個ajax,後台部分執行資料庫查詢 獲得json格式數組
通過回調函數將返回的內容插入到<p></p>中