平时做技术实践时,很多问题不是概念不会,而是细节没串起来。拿“利用Ajax实现方法智能回答的机器人示例代码”来说,它看着像小点,放到项目里常会牵出环境、配置、兼容性和维护成本。下面按实际采用顺序,把思路、关键写法和容易踩坑的地方讲清楚,便于大家直接对照操作。
下图是效果(文章末尾有所有的源代码)

一、实现人机交互步骤:
在这个场景下,拿到dom元素,新建点击事件/键盘事件 将我说的话传进ajax服务器中,拿到机器人说的话,then()中的数据找到 新建子节点追加并且渲染数据出来 每次说完了都滚动到对话框最下面来
拿到dom元素,新建点击事件/键盘事件
const btn = document.querySelector('#btnSend')
const ipt = document.querySelector('#ipt')
ipt.addEventListener('keyup', function (e) {
if (e.key === 'Enter') {
btn.click()
}
})
btn.addEventListener('click', () => {
const val = ipt.value.trim()
console.log(val);将我说的话传进ajax服务器中
axios.get('http://ajax-api.itheima.net/api/robot',{ params: { spoken: val}}).then(res => {
console.log(res);//res本质是服务器响应的值
console.log(res.data.data.info.text);
const words = res.data.data.info.text这是服务器响应数据得到的值所在的位置(res.data.data.info.text)

新建子节点追加并且渲染数据出来
li.className = 'left_word'
document.querySelector('#talk_list').appendChild(li)
li.innerHTML = `${words}`
每次说完了都滚动到对话框最下面来
document.querySelector('ul').scrollTop = document.querySelector('ul').scrollHeight以上这是传入Ajax发送的数据渲染,我们发的val同理渲染
// 自己发的
const li = document.createElement('li')
li.className = 'right_word'
document.querySelector('#talk_list').appendChild(li)
li.innerHTML = `${val}`
ipt.value=''
// 滚动到页面最下面
document.querySelector('ul').scrollTop = document.querySelector('ul').scrollHeight
此时再进行校验下:

二、以上的源码(图片素材不便于传,自己随便定义啦~)
案例_问答机器人
小思同学
到此这篇关于借助Ajax实现智能回答的机器人的文章就介绍到这了,更多相关Ajax机器人内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多兼容脚本之家!
- jQuery实现Ajax聊天机器人完成案例
- 基于Ajax的聊天机器人功能的实现

