作者alfadick (悟道修行者)
看板Ajax
標題[ajax] 聊天室, 來一句接一句, 來一句接一句 XD
時間Mon Jul 11 19:30:34 2011
用 AJAX 寫個聊天室, 看過的 example 很少
只看過
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
... 略
xmlhttp.open("POST","get.php",true);
xmlhttp.send();
之類的, 而 get.php 裡面是 SELECT * from ...;一口氣把所有的對話顯示出來
例如:
瀏覽器看到的聊天室畫面為
Jack said: one
Merry said: two
John said: three
_______________________________________________
|_____submit____|
_______________________________
接下來,Jack又說了four, 我要用Ajax得到Jack說了什麼,用get.php
變成得從 server 那再 Request 東西進來,
Jack said: one, Merry said...... 之前抓到的東西又要再一次 Request
很浪費資源,
有沒有辦法,get.php當中的mysql_query()只要抓到目前螢幕沒有的,別人最新輸入的話
而且 Ajax 也要配合寫出來。
換句話說,xmlhttp.responseText永遠都是最新的資料,而不要從頭開始抓。
用 <div id="myDiv"></div>,邏輯上好像辦不到
請高人指點一下 多謝 :-)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.167.0.145
※ 編輯: alfadick 來自: 218.167.0.145 (07/11 19:35)
2F:推 shadowjohn:我是拿最後一個id來當參考讀入值,往後拿資料 07/11 19:48
3F:推 shadowjohn:不過那時在寫的時候js很菜,寫的很雜亂~日久失修了 07/11 20:07
4F:→ eight0:為訊息編號 request時只傳回較新編號的訊息~ 07/11 21:24
5F:推 mrbigmouth:拿資料時把使用端取得的最後留言時間給傳過去 07/11 22:04
6F:→ mrbigmouth:這樣後臺就可以只取出在該發言之後的訊息丟回來 07/11 22:04
7F:推 UniFish:記錄timestamp吧 07/12 09:50