You've already forked Nano-Banana-AI-Image-Editor
修复内存溢出问题
This commit is contained in:
24
src/App.tsx
24
src/App.tsx
@@ -24,13 +24,15 @@ function AppContent() {
|
||||
|
||||
const { showPromptPanel, setShowPromptPanel, setShowHistory } = useAppStore();
|
||||
|
||||
// 在挂载时初始化IndexedDB
|
||||
// 在挂载时初始化IndexedDB并清理base64数据
|
||||
useEffect(() => {
|
||||
const init = async () => {
|
||||
try {
|
||||
await indexedDBService.initDB();
|
||||
// 清理已有的base64数据
|
||||
await indexedDBService.cleanupBase64Data();
|
||||
} catch (err) {
|
||||
console.error('初始化IndexedDB失败:', err);
|
||||
console.error('初始化IndexedDB或清理base64数据失败:', err);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -52,6 +54,24 @@ function AppContent() {
|
||||
return () => window.removeEventListener('resize', checkMobile);
|
||||
}, [setShowPromptPanel, setShowHistory]);
|
||||
|
||||
// 定期清理旧的历史记录
|
||||
useEffect(() => {
|
||||
const interval = setInterval(() => {
|
||||
useAppStore.getState().cleanupOldHistory();
|
||||
}, 30000); // 每30秒清理一次
|
||||
|
||||
return () => clearInterval(interval);
|
||||
}, []);
|
||||
|
||||
// 定期清理未使用的Blob URL
|
||||
useEffect(() => {
|
||||
const interval = setInterval(() => {
|
||||
useAppStore.getState().scheduleBlobCleanup();
|
||||
}, 60000); // 每分钟清理一次
|
||||
|
||||
return () => clearInterval(interval);
|
||||
}, []);
|
||||
|
||||
return (
|
||||
<div className="h-screen bg-gray-50 text-gray-900 flex flex-col font-sans">
|
||||
<div className="card card-lg rounded-none">
|
||||
|
||||
Reference in New Issue
Block a user