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. redis-sentinel 主从复制高可用

    Redis-Sentinel Redis-Sentinel是redis官方推荐的高可用性解决方案,当用redis作master-slave的高可用时,如果master本身宕机,redis本身或者客户端 ...

  2. request.getAttribute()和request.getParameter()两个方法的区别

    request.getAttribute()获得的数据必须曾经有过setAttibute()过: 而request.getParameter()获得是客户端POST或者GET请求时所携带的参数的值 g ...

  3. TCP之LAST_ACK状态

    前提: A:主动关闭: B:被动关闭: A执行主动关闭,发送FIN,B收到FIN,发送ACK,进入CLOSE_WAIT,B发送FIN,进入LAST_ACK等待最后一个ACK到来: 关闭方式: (1) ...

  4. shell初级-----结构化命令

    if-then语句 bash shell的if语句会执行if后面的那个命令,如果该命令的退出码状态为0会执行then部分的命令,如果是其他值不会执行. 格式如下: if command then co ...

  5. c++中字符输入函数cin.getline在输入char与string时的不同

    cin.getline在输入char时: using namespace std; ; char name[ArSize]; char dessert[ArSize]; cout << & ...

  6. 浏览器端-W3School-HTML:HTML DOM Area 对象

    ylbtech-浏览器端-W3School-HTML:HTML DOM Area 对象 1.返回顶部 1. HTML DOM Area 对象 Area 对象 Area 对象代表图像映射的一个区域(图像 ...

  7. LoadRunner 技巧之 添加事务

    事务(Transaction)用于模拟用户的一个相对完整的.有意义的业务操作过程,例如登录.查询.交易.转账,这些都可以作为事务,而一般不会把每次HTTP请求作为一个事务. 拿笔者所测试的邮箱系统为例 ...

  8. react native配置ip真机测试

    首先保证真机和pc 保证在同一个网络下 根据红色错误判断自己是什么情况 例如 提示无法连接远程服务,说明你的不在同一网络下 提示500 可能配置的ip不对 设置ip方法 摇晃手机 ---> De ...

  9. TestNG学习笔记 一

    一. 介绍 TestNG是一个设计用来简化广泛的测试需求的测试框架,从单元测试(隔离测试一个类)到集成测试(测试由有多个类多个包甚至多个外部框架组成的整个系统,例如运用服务器). 编写一个测试的过程有 ...

  10. 找工作Java面试 题搜集

    面向对象的特征有哪些方面?答:面向对象的特征主要有以下几个方面: 抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面.抽象只关注对象有哪些属性和行为,并不关注这些行为的 ...