chatgpt-web-midjourney-proxy icon indicating copy to clipboard operation
chatgpt-web-midjourney-proxy copied to clipboard

消息清除时网站卡死

Open YYhaike opened this issue 1 year ago • 8 comments

8454ed9e4b38cd38e0cc7723d40cea6 单独清除也会卡,全部清除也是会卡死,浏览器为谷歌浏览器

YYhaike avatar May 17 '24 05:05 YYhaike

额 好的

Dooy avatar May 17 '24 06:05 Dooy

我一直 试不出来 就奇怪了 我在mac上

Dooy avatar May 18 '24 02:05 Dooy

edge和谷歌浏览器都有这个问题,浏览器全是最新版本。Safari、火狐还没试过

superultra01 avatar May 20 '24 02:05 superultra01

操作系统是 window 么?

Dooy avatar May 20 '24 03:05 Dooy

Windows 10 专业版22H2

superultra01 avatar May 20 '24 03:05 superultra01

Windows 10 专业版22H2

看来得搞台win来测试下了

Dooy avatar May 20 '24 03:05 Dooy

我一直 试不出来 就奇怪了 我在mac上

得有聊天记录,清除的时候~~~~才会卡住网页

YYhaike avatar May 20 '24 11:05 YYhaike

我一直 试不出来 就奇怪了 我在mac上

得有聊天记录,清除的时候~~~~才会卡住网页

都试过 而且是非常多的聊天记录

Dooy avatar May 20 '24 12:05 Dooy

我一直 试不出来 就奇怪了 我在mac上

得有聊天记录,清除的时候~~~~才会卡住网页

都试过 而且是非常多的聊天记录

手机端貌似也会卡住

YYhaike avatar May 22 '24 11:05 YYhaike

@Dooy @heiyyint 我的情况是对话中加载的base64图像太大就会卡死,我调整了src/api/mjsave.ts的两个函数(用chatgpt写的,写的糟糕见笑了),加载图片时也转换成blob对象能够缓解卡的情况:

//本地存储获取
export const localGet = async (key: string): Promise<any> => {
    const value = await localforage.getItem<any>(key);

    if (typeof value === 'string') {
        let base64Data;
        let mimeType;
        let isNested = false;

        if (value.startsWith('["data:image/')) {
            // 数据以 ["data:image/ 开头,处理嵌套的情况

            isNested = true;
            base64Data = value.split('["')[1].split('"]')[0].split(',')[1];
            mimeType = value.split('["')[1].split('"]')[0].split(',')[0].match(/:(.*?);/)[1];
        } else if (value.startsWith('data:image/')) {
            // 数据以 data:image/ 开头,处理非嵌套的情况
            base64Data = value.split(',')[1];
            mimeType = value.split(',')[0].match(/:(.*?);/)[1];
        }

        if (base64Data && mimeType) {
            const byteString = atob(base64Data);
            const ab = new ArrayBuffer(byteString.length);
            const ia = new Uint8Array(ab);

            for (let i = 0; i < byteString.length; i++) {
                ia[i] = byteString.charCodeAt(i);
            }

            const blob = new Blob([ab], { type: mimeType });
            const blobUrl = URL.createObjectURL(blob);

            return isNested ? `["${blobUrl}"]` : blobUrl;
        }
    }

    return value;
}
export function url2base64More(url: string, key?: string): Promise<{key: string, blob: Blob}> {
    return new Promise<{key: string, blob: Blob}>((resolve, reject) => {
        const img = new Image();
        img.crossOrigin = "anonymous";
        img.onload = () => {
            const base64 = img2base64(img);
            const mimeType = base64.split(',')[0].match(/:(.*?);/)[1];
            const base64Data = base64.split(',')[1];

            // 将 Base64 数据转换为 Blob 对象
            const byteString = atob(base64Data);
            const ab = new ArrayBuffer(byteString.length);
            const ia = new Uint8Array(ab);

            for (let i = 0; i < byteString.length; i++) {
                ia[i] = byteString.charCodeAt(i);
            }

            const blob = new Blob([ab], { type: mimeType });

            localSaveAny(base64, key).then(d => resolve({key: d, blob})).catch(e => reject(e));
        };
        img.onerror = (e) => reject(e);
        img.src = url;
    });
}

williamjoe avatar May 23 '24 02:05 williamjoe

+1,也是清除消息时卡死,经常发生,windows,最新chrome

pugwoo avatar May 27 '24 14:05 pugwoo

+1,也是清除消息时卡死,经常发生,windows,最新chrome

消息不多时,只有七八条,单独删除一条,也会卡住,经常发生,一天可以发生十来次

pugwoo avatar May 27 '24 15:05 pugwoo

+1 也是清除消息时卡死,基本都会发生,windows,最新chrome

zhanghs23 avatar May 29 '24 13:05 zhanghs23

windows chrome下这个问题出现频繁,+1

Cans518 avatar May 30 '24 16:05 Cans518

帮忙测试下 v2.18.2 版本找到卡死的地方了

自己测试了 不会了;请大家帮忙在测下

Dooy avatar Jun 01 '24 00:06 Dooy

我更新完以后卡的更频繁了,有人遇到一样的情况么?

williamjoe avatar Jun 01 '24 11:06 williamjoe

额 卡得更频繁?

Dooy avatar Jun 02 '24 03:06 Dooy

额 卡得更频繁?

我这边的情况是这样,看看其他人的情况怎么样,我现在临时把deleteChatByUuid(uuid: number, index: number)函数改成了调用clearChatByUuid(uuid: number),变相先清空对话历史用着。。。

williamjoe avatar Jun 02 '24 05:06 williamjoe

检查出来了 搞了 一个新版本 v2.18.3 版本 再试下

image

Dooy avatar Jun 02 '24 07:06 Dooy

检查出来了 搞了 一个新版本 v2.18.3 版本 再试下

image

这个我测试了一会儿发现不卡了,感谢感谢,如果发现有卡的情况我再来留言

williamjoe avatar Jun 02 '24 11:06 williamjoe

大家可以 再测试看看

Dooy avatar Jun 02 '24 13:06 Dooy