作者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