最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

jQuery實(shí)現(xiàn)簡(jiǎn)單聊天室

 更新時(shí)間:2020年02月08日 17:57:43   作者:BinkiCyo  
這篇文章主要為大家詳細(xì)介紹了jQuery實(shí)現(xiàn)簡(jiǎn)單聊天室,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

自從看了jQuery后,頓時(shí)感覺(jué)其的確很簡(jiǎn)單易學(xué)。下面就一把自己寫(xiě)的一個(gè)簡(jiǎn)易的聊天室程序?qū)懗鰜?lái)。

主要就是利用jQuery的ajax,然后,別的其實(shí)也沒(méi)什么了。先上client端的程序吧。

<!DOCTYPE html>
<html>
<head>
 <meta charset="utf-8"/>
 <meta name="viewport" content="width=device-width"/>
 <link rel="stylesheet" type="text/css" href="./styles/chat-mobile.css" rel="external nofollow" />
 <script type="text/javascript" src="./scripts/jquery-1.8.2.min.js"></script>
 <script type="text/javascript">
 $(function() {
 timestamp = 0;
 updateMsg(timestamp);
 $('button').click(function() { //重點(diǎn)是這里,從這里向服務(wù)器端發(fā)送數(shù)據(jù)
  $.post('chat.php', {
  'message': $('#msg').val(),
  'name': $('#name').val(),
  'timestamp': timestamp
  },function(xml) {
  $('#msg').val('');
  addMessage(xml);
  });
  return false;
 });
 
 $('#name').blur(function (){ //僅僅用來(lái)控制名字輸入框的背景
  if ($('#name').val()) {
  $(this).css({"background": "url(images/background.jpg)", "border": "2px dashed #fff"});
  };
 });
 $('#name').click(function () {
  $(this).css({"background": "#fff", "border": "2px solid #fff"});
 })
 
 });
 //update message
 function updateMsg(timestamp) { //從服務(wù)器端更新聊天數(shù)據(jù),并載入吧
 $.post('chat.php', {'timestamp': timestamp}, function(xml) {
  $('#loading').remove();
  addMessage(xml);
 });
 setTimeout('updateMsg(timestamp);', 1000); //1s刷新一次信息
 }
 function addMessage(xml) { //解析xml,并添加到頁(yè)面內(nèi)
 if($('status', xml).text() == 2) {
  return;
 };
 timestamp = $('timestamp', xml).text();
 $('message', xml).each(function() {
  var author = $('author', this).text();
  var content = $('content', this).text();
  var time = $('time', this).text();
  var htmlcode = '<div><strong>' + author + ': </strong><label>' + time + '</label><p>' + content + '</p></div>';
  $('#messageWindow').append(htmlcode);
  scrollToBottom();
 });
 }
 function scrollToBottom () { //控制滾動(dòng)條一直顯示在底部
 var height = document.getElementById('messageWindow').scrollHeight;
 if (height > $('#messageWindow').scrollTop()) {
  $('#messageWindow').scrollTop(height);
 }
 }
 
 </script>
</head>
<body>
 <header>
 <div id="hr"></div>
 </header>
 
 <div id="wrapper">
 <div id="window">
  <div id="messageWindow">
  <span id="loading">loading...</span>
  </div>
  <form id="chatform">
  <label>your message:</label>
  <textarea type="text" id="msg" size="50"/></textarea>
  <input type="text" id="name" size="10" placeholder="your name"/>
  <button accesskey="s">Send</button>
  </form>
 </div>
 </div>
 <br/>
 <br/>
 <p id="hint">Hint: 移動(dòng)版的,開(kāi)放的聊天室</p>
 
 <footer>
 <p>©SamuraiMe</p>
 </footer>
</body>
</html>

服務(wù)器端我是用php寫(xiě)的簡(jiǎn)單程序,把產(chǎn)生的xml貼出來(lái)。其實(shí)就是簡(jiǎn)簡(jiǎn)單單給數(shù)據(jù)庫(kù)存數(shù)據(jù)取數(shù)據(jù)的一個(gè)過(guò)程。

<?xml version="1.0" encoding="utf-8"?>
<response>
 <status></status>
 <timestamp></timestamp>
 <message>
 <author></author>
 <content></content>
 <time></time>
 </message>
</response>

上面就是最后成品,手機(jī)截圖不方便,就在firefox上截了,效果是一樣的。雖然css寫(xiě)得磕磣了點(diǎn)。但是還是有需要注意的地方。就像圖上'how are you ...'那一大串,如果換成'1111...111'一大串,就會(huì)產(chǎn)生scroll-x,移動(dòng)端好像沒(méi)有出現(xiàn)滾動(dòng)條,消息就看不到了。這怎么能容忍。于是要加

word-wrap: break-word;

本來(lái)我以為要寫(xiě)字符串程序,自己手動(dòng)來(lái)?yè)Q行,有了word-wrap就一句話搞定了。

最后要說(shuō),jQuery的確是簡(jiǎn)單好用,但終究是一個(gè)輕量級(jí)庫(kù),很多事情是完成不了的,就比如讓那個(gè)滾動(dòng)條一直顯示在底部,我就發(fā)現(xiàn)無(wú)法用jQuery完成,也許是我才看jQuery,還沒(méi)找到獲取scrollHeight的方法,最后只能回到不熟悉的js上面去。

var height = document.getElementById('messageWindow').scrollHeight;
if (height > $('#messageWindow').scrollTop()) {
	$('#messageWindow').scrollTop(height);
}

差點(diǎn)忘了說(shuō)了。

<meta name="viewport" content="width=device-width"/>

在移動(dòng)端有一個(gè)虛擬可視區(qū)域,比實(shí)際的可視區(qū)域要大一些。第一次在手機(jī)上查看的時(shí)候,總有scroll出現(xiàn),用了這個(gè)meta就可以解決了。

最后,這是我第一篇技術(shù)博客。希望對(duì)看到的人能有所幫助。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

凤冈县| 文水县| 延津县| 绵阳市| 江阴市| 龙口市| 化德县| 丽水市| 穆棱市| 眉山市| 北宁市| 龙州县| 宿松县| 繁峙县| 赫章县| 包头市| 辽阳市| 赣州市| 连山| 墨竹工卡县| 鄯善县| 宝兴县| 潮州市| 鸡东县| 城口县| 峡江县| 洪洞县| 连山| 拉萨市| 长顺县| 寻甸| 潞城市| 陈巴尔虎旗| 大庆市| 微博| 闵行区| 五大连池市| 延川县| 平南县| 屯昌县| 青浦区|