HTML 中的文档

<body>
<h3>简单的Ajax实例</h3>
<div class="chatbox">
<!-- 聊天内容 -->
<div class="messages">
<div class="self">
<h5>我说</h5>
<p>你好</p>
</div>
<div class="other">
<h5>对方说</h5>
<p>你好</p>
</div>
</div>
<div class="form">
<div class="input">
<textarea></textarea>
</div>
<div class="btn">
<input type="button" value="发送" />
</div>
</div>
</div>
<script>
// 1. 给发送按钮添加点击事件, 点击时, 获取textarea的文本 value值
// 2. 动态创建我说部分, 动态创建 div, 类名 self, 并添加到聊天框中
// 3. 发送ajax请求到服务器, 服务器会返回一句话
// 4. 根据返回的话, 动态他说部分, 动态创建 div, 类名 other, 并添加到聊天框中
// 让滚动条, 滚动到显示这个盒子
// 盒子.scrollIntoView(); 让滚动条显示到盒子的位置
var btn = document.querySelector('.btn > input'); // 发送按钮
var textarea = document.querySelector('.form textarea');
var messages = document.querySelector('.messages');
btn.onclick = function() {
var value = textarea.value.trim(); // 获取值
textarea.value = ''; // 清空内容
if (value === '') {
return;
}
// 肯定是有值的
// 动态创建我说部分
var div = document.createElement('div');
messages.appendChild(div);
div.className = 'self';
div.innerHTML = "<h5>我说</h5><p>" + value + "</p>";
div.scrollIntoView();
// 发送ajax请求, 要求使用post
var xhr = new XMLHttpRequest();
xhr.open('post', '12.php');
xhr.setRequestHeader('content-type', 'application/x-www-form-urlencoded');
xhr.send('msg=' + value);
// 处理响应
xhr.onreadystatechange = function() {
if (xhr.readyState === 4 && xhr.status === 200) {
// 响应成功
var result = xhr.responseText; // 获取结果
// 动态创建他说部分
var div = document.createElement('div');
messages.appendChild(div);
div.className = 'other';
div.innerHTML = '<h5>对方说</h5><p>' + result + '</p>';
div.scrollIntoView();
}
}
}
textarea.onkeyup = function(e) {
if (e.keyCode === 13) {
btn.onclick();
}
}
 
</script>
</body>
 
 
 
php中的文档
<?php
// 设置字符集
header('content-type: text/html; charset=utf-8;');
$arr = array(
'爱过',
'情不知所以',
'你妹',
'不约',
'你怎么穿着品如的衣服',
'晚上有空么'
);
// 从数组中随机出来一个
// array_rand(数组名, 随机出来几个下标)
// $rand = array_rand($arr, 2);
// print_r($rand);
$rand = array_rand($arr, 1); // 随机的下标
// php里面, 延时响应
sleep(1);
echo $arr[$rand];
?>
 
 
这种可以设置一个简单的与机器人对话的过程,最基础的

用ajax写机器人聊天的案例的更多相关文章

  1. 用Python写的一个多线程机器人聊天程序

    本人是从事php开发的, 近来想通过php实现即时通讯(兼容windows).后来发现实现起来特别麻烦, 就想到python.听说这家伙在什么地方都能发挥作用.所以想用python来做通讯模块...所 ...

  2. Vue2 全家桶仿 微信App 项目,支持多人在线聊天和机器人聊天

    前言 这个项目是利用工作之余写的一个模仿微信app的单页面应用,整个项目包含27个页面,涉及实时群聊,机器人聊天,同学录,朋友圈等等,后续页面还是开发中.写这个项目主要目的是练习和熟悉vue和vuex ...

  3. Java接入图灵机器人,实现与机器人聊天

    很多人都玩过微信,其中就有与机器人聊天的功能:

  4. ajax 写登录

    AJAX的全称是Asynchronous JavaScript and XML(异步的 JavaScript 和 XML). ajax的优点: 1.最大的一点是页面无刷新,用户的体验非常好. 2.使用 ...

  5. python写机器人玩僵尸骰子

    python写机器人玩僵尸骰子由Al Sweigart用python发布注意:我正在为我的僵尸骰子模拟器寻找反馈,以及这一套指令.如果你觉得有什么地方可以改进,请发邮件到al@inventwithpy ...

  6. 你也可以写个聊天程序 - C# Socket学习1

    原文:你也可以写个聊天程序 - C# Socket学习1 简述 我们做软件工作的虽然每天都离不开网络,可网络协议细节却不是每个人都会接触和深入了解.我今天就来和大家一起学习下Socket,并写一个简单 ...

  7. Python实现机器人聊天

    今天午休的时候,无意之中看了一篇博客,名字叫Python实现机器人,感觉挺有的意思的.于是用其写了一个简单的Python聊天,源码如下所示: # -*- coding: utf- -*- import ...

  8. 使用itchat实现一个微信机器人聊天回复功能

    近看到好多群里都有一个@机器人的功能,挺有趣的,想自己也玩下,就通过百度一点点实现,在这总结一下整个从无到有的过程. 首先,要知道itchat,它是Python写的,所以想要实现这个机器人的功能,需要 ...

  9. 【阿里云产品公测】开放搜索服务 opensearch java jdk 应用体验之 机器人聊天

    作者:阿里云用户啊里新人 需求:基本实现智能聊天! 最近在开发一款机器人,希望实现基本的聊天功能,词库是有的,但是如果是做完全匹配这个出来的效果很悲催,   比如词库:你好,回答是:哈哈,很好啊. 如 ...

随机推荐

  1. TCP定时器 之 坚持定时器

    坚持定时器在接收方通告接收窗口为0,阻止发送端继续发送数据时设定. 由于连接接收端的发送窗口通告不可靠(只有数据才会确认,ACK不会确认),如果一个确认丢失了,双方就有可能因为等待对方而使连接终止:接 ...

  2. MethodChannel 实现flutter 与 原生通信

    Flutter 步骤 目的:在flutter页面中主动调用原生页面中的方法. 1 在widget中,定义MethodChannel变量 static const MethodChannel metho ...

  3. docker-compose部署redis-cluster

    node1-node6 1.到http://download.redis.io/redis-stable/redis.conf下载官方redis.conf文件 2.修改对应端口 # bind 127. ...

  4. [转]maven中scope详解

    在POM 4中,<dependency>中还引入了<scope>,它主要管理依赖的部署.目前<scope>可以使用5个值: * compile,缺省值,适用于所有阶 ...

  5. 浏览器端-W3School-HTML:HTML DOM Script 对象

    ylbtech-浏览器端-W3School-HTML:HTML DOM Script 对象 1.返回顶部 1. HTML DOM Script 对象 Script 对象 Script 对象表示 HTM ...

  6. 关于Oracle报表

    1.存储过程中的WHEN OTHERS THEN是什么意思. 异常分很多种类,如NO_FOUND.OTHERS处本应该写异常名称,如果不想把异常分得那么细,可以笼统一点用OTHERS来捕获,即所有异常 ...

  7. DVM 和 JVM 的区别?

    a) dvm 执行的是.dex 文件,而 jvm 执行的是.class.Android 工程编译后的所有.class 字节码会被 dex 工具抽取到一个.dex 文件中.b) dvm 是基于寄存器的虚 ...

  8. one vs all -- 将01分类器用于多类分类问题

    大多数分类器都是01分类器,如logistic regression.当我们要将数据分为多类的时候, 可以用一种叫one-vs-all的方法将01分类器用于多类分类(mult-class classi ...

  9. 系统分析与设计HW9

    使用 ECB 实现 make reservation 用例的详细设计(包含用例简介,顺序图,类图) 用例简介: 搜索酒店 1.1 选择城市 1.2 选择日期 生成订单 2.1 选择酒店 2.2 选择日 ...

  10. 数据科学中的R和Python: 30个免费数据资源网站

    1 政府数据 Data.gov:这是美国政府收集的数据资源.声称有多达40万个数据集,包括了原始数据和地理空间格式数据.使用这些数据集需要注意的是:你要进行必要的清理工作,因为许多数据是字符型的或是有 ...