php 即時更新

關於php自動更新問題
A ajax
function no1(){
$("#no1_").load("no1.php");
setTimeout(no1, 10000);
}

B
no1.php

我是使用這樣來讓ajax呼叫php 然後在php端聯繫mysql
然後echo值到id #no1_顯示
但我有問題是
1. 若no1.php的mysql語法在撈資料的時候
假設有錯誤時,我想要echo在A,但這樣在A要如何顯示該錯誤訊息呢?
2. 另外若no1.php 有第二種mysql語法
若我再加一個function no2
我要如何與no1以及no1.php的第一個mysql語法作區別顯示呢?
我想把更多mysql語法寫在同一個no1.php上比較好管理
3. 有沒有辦法讓他資料庫有變動的時候再進行load的動作呢 取代setTimeout
2016-03-04 22:46 發佈
文章關鍵字 PHP 即時更新

mypeter0604 wrote:
關於php自動更新...(恕刪)


簡單的一個範例,以下只列出你需要的部分,許多部分已簡化,完全可以集成在一隻程式裡面,不需要拆分一堆腳本,更多細節請自行google,希望對你有點幫助。

server:
<?php
$a=time();
$b=rand();
$json_arr=Array();
$json_arr['respon_1']=$a;
$json_arr['respon_2']=$b;
echo json_encode($json_arr);
?>

client:
$.ajax({
url: 'no1.php',
dataType: 'jsonp',
success: function (data){
//data是由php端回傳的json物件,可以應付多種結果,自行運用,如上例的結果你會取得data.respon_1和data.respn_2
}
});

第三點你提到的非週期性setTimeout方案,則可以在php端用while搭配sleep去做,直到資料變動再回傳,就不用一直週期性的跟server要資料,但是寫法要自己小心一點,以免拖垮你的server loading....

如大大言一般不建議這麼做.可考慮在異動資料的程式碼之中加入啟動更新的機制,而不要一直週期定時去REQUEST.
joeyhsy wrote:
第三點你提到的非週期性setTimeout方案,則可以在php端用while搭配sleep去做,直到資料變動再回傳,就不用一直週期性的跟server要資料,但是寫法要自己小心一點,以免拖垮你的server loading...

mypeter0604 wrote:
有沒有辦法讓他資料庫有變動的時候再進行load的動作呢 取代setTimeout

nwcs wrote:
如大大言一般不建議...(恕刪)


常見的三種做法
1. setTimeout
2. long pulling
3. web socket
https://jin.tw
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?