修复进行图渲染导致内存泄漏过多导致卡死问题,对历史消息不渲染

This commit is contained in:
junleea 2025-04-13 15:51:15 +08:00
parent 87ce06a1f1
commit ead2961500
2 changed files with 39 additions and 9 deletions

View File

@ -60,7 +60,7 @@
<span v-else>🧑🎓</span> <span v-else>🧑🎓</span>
</div> </div>
<div class="message-content"> <div class="message-content">
<div v-html="renderMarkdown(message.content)"></div> <div v-html="renderMarkdown(message,index)"></div>
<!-- 添加复制 --> <!-- 添加复制 -->
<div> <div>
<el-button <el-button
@ -293,9 +293,23 @@ const selectFileVisible = ref(false); // 控制文件选择对话框的显示与
const searchFileQuery = ref(""); // const searchFileQuery = ref(""); //
const filteredFiles = ref<File[]>([]); // const filteredFiles = ref<File[]>([]); //
const uploadFileVisible = ref(false); // const uploadFileVisible = ref(false); //
const historyMsgHtml= ref([]); // HTML
const renderMarkdown = (content: string) => { const renderMarkdown = (message: Message, index:number) => {
return md.render(content); if(message.finished == false){
//console.log("not finished");
return message.content;
}
if(historyMsgHtml.value[index]){
//console.log("historyMsgHtml:", historyMsgHtml.value[index]);
//console.log("historyMsgHtml:", index);
//
return historyMsgHtml.value[index];
}
//console.log("new finish:");
const html = md.render(message.content);
historyMsgHtml.value.push(html);
return html;
}; };
const scrollToBottom = () => { const scrollToBottom = () => {
@ -626,6 +640,7 @@ const loadSession = async (session_id: number) => {
const clearCurrent = () => { const clearCurrent = () => {
sessionID.value = 0; sessionID.value = 0;
messages.length = 0; // messages.length = 0; //
historyMsgHtml.value.length = 0; //
sessionName.value = "新会话"; sessionName.value = "新会话";
ElMessage.success("新会话已创建!可以开始聊天了"); ElMessage.success("新会话已创建!可以开始聊天了");
}; };
@ -649,6 +664,7 @@ const getShortenedName = (name: string) => {
}; };
const getMessage = async (session_id: number) => { const getMessage = async (session_id: number) => {
historyMsgHtml.value.length = 0; //
let result = {}; let result = {};
try { try {
let req = { let req = {

View File

@ -60,7 +60,7 @@
<span v-else>🧑🎓</span> <span v-else>🧑🎓</span>
</div> </div>
<div class="message-content"> <div class="message-content">
<div v-html="renderMarkdown(message.content)"></div> <div v-html="renderMarkdown(message,index)"></div>
<!-- 添加复制 --> <!-- 添加复制 -->
<div> <div>
<el-button <el-button
@ -288,11 +288,24 @@
const searchFileQuery = ref(""); // const searchFileQuery = ref(""); //
const filteredFiles = ref<File[]>([]); // const filteredFiles = ref<File[]>([]); //
const uploadFileVisible = ref(false); // const uploadFileVisible = ref(false); //
const historyMsgHtml= ref([]); // HTML
const renderMarkdown = (content: string) => { const renderMarkdown = (message: Message, index:number) => {
return md.render(content); if(message.finished == false){
}; //console.log("not finished");
return message.content;
}
if(historyMsgHtml.value[index]){
//console.log("historyMsgHtml:", historyMsgHtml.value[index]);
//console.log("historyMsgHtml:", index);
//
return historyMsgHtml.value[index];
}
//console.log("new finish:");
const html = md.render(message.content);
historyMsgHtml.value.push(html);
return html;
};
const scrollToBottom = () => { const scrollToBottom = () => {
let x = document.getElementsByClassName("chat-messages")[0]; let x = document.getElementsByClassName("chat-messages")[0];
if (!x) return; if (!x) return;
@ -665,6 +678,7 @@
}; };
const getMessage = async (session_id: number) => { const getMessage = async (session_id: number) => {
historyMsgHtml.value.length = 0; //
let result = {}; let result = {};
try { try {
let req = { let req = {