2014-02-18 31 views
1

我有一個頁面,其中有一些文本是從數據庫中提取的。 雖然該頁面已打開,而其他人正在更改數據庫中的文本,但我不想讓頁面在數據更改時立即刷新。當有人進行更改時自動刷新頁面

我已經搜索了一下,發現了一些關於使用彗星的東西,但是我對它一無所知。

有沒有更簡單的方法來解決我的問題?如果沒有,是否有人知道一個簡單的彗星教程?

+0

http://stackoverflow.com/questions/333664 /簡單長輪詢-示例代碼 –

回答

1

有兩種方法讓我想起。類別中的第一個「推送消息」。沒有太多的經驗,所以即時將繼續選項2:

text是相同的表/行中添加最後編輯時間戳。當有人更新文本時,更新時間戳。

當用戶加載頁面時,還會將最後編輯時間戳發送到javascript變量中。然後做一個超輕量級AjaxCall的一個驗證文件,沿此線:

$query = "SELECT text,last_edit FROM someTable WHERE lastedit>".$_GET['timestampFromJS']." LIMIT 1"; 
$result = mysqli_query($conn, $query); 
if($result->num_rows===0){ 
    echo 0; // something small for JS 
} 
else{ 
    $fetch = $result->fetch_assoc(); 
    echo $fetch['text']; 
} 

在你的JavaScript代碼的成功處理程序,檢查值不等於0,如果不是0,使用結果更新頁面。

可能有其他的解決方案,或者你可能更喜歡JSON(我知道我做的:P),但你會得到的想法:)草案