node.js - 对话流中有没有办法在重新加载网页后保留会话的聊天记录?
问题描述
我使用 expressjs、reactjs 和 dialogflow 构建了一个聊天机器人。我想做的是,刷新页面时要保留的聊天记录。有没有办法做到这一点?(可能正在使用 sessionID?)
解决方案
我确实找到了一种方法,只需几行代码
var messageList = document.querySelector('df-messenger') .shadowRoot.querySelector('df-messenger-chat') .shadowRoot.querySelector('df-message-list').shadowRoot.querySelector('#messageList');
..
然后将 messageList 的内容保存到浏览器中的 localStorage 对象,然后在页面加载时将其加载到 messageList 元素中
...
收到新消息事件
window.localStorage.setItem('chatBotHistory', messageList.innerHTML);
...
新页面的onload事件
document.querySelector('df-messenger') .shadowRoot.querySelector('df-messenger-chat') .shadowRoot.querySelector('df-message-list').shadowRoot.querySelector('#messageList').innerHTML = window .localStorage.getItem('chatBotHistory');
推荐阅读
- javascript - 在nodejs中处理来自excel文件的数据时请求超时
- unity3d - 图像不包含“PIXEL_FORMAT”的定义
- derived-class - 在 Chapel 中接受派生类的类方法
- javascript - 如何从html表格将长文本设置到Excel单元格中
- curl - 在 aem 中更改 Apache Jetty 的连接超时值未应用
- android - 获取特定用户的总订阅列表
- amazon-web-services - AWS CLI 可以访问 s3 但不能访问其他资源
- reactjs - 如何将可变数量的道具传递给 React 中的 JSX 标签
- javascript - 如何优化正则表达式以检查包含锚标记的文本
- flutter - Flutter:我已将 Dart 入口点更改为 Login.dart ,同时构建 apks 错误显示找不到 lib\main.dart