waveshaker commited on
Commit
c3cfcb8
·
verified ·
1 Parent(s): 44c9ea4

Update frontend_cache/app.js

Browse files
Files changed (1) hide show
  1. frontend_cache/app.js +25 -28
frontend_cache/app.js CHANGED
@@ -206,10 +206,15 @@ const BackendAPI = {
206
  return;
207
  }
208
 
209
- setTimeout(() => this.pollStatus(taskId, callbacks, retries + 1), 300);
210
  }
211
  else if (data.status === "success") {
212
- if (callbacks.onSuccess) callbacks.onSuccess(data.image, data.seed, data.metrics);
 
 
 
 
 
213
  }
214
  else if (data.status === "error") {
215
  if (callbacks.onError) callbacks.onError(data.message);
@@ -1174,10 +1179,13 @@ document.getElementById('generate-btn').addEventListener('click', async () => {
1174
 
1175
  smartScroll()
1176
  },
1177
- onSuccess: async (imageBase64, returnedSeed, metrics) => {
1178
  placeholderText.style.display = 'none';
1179
  console.log("🚨 DEBUG METRICS:", JSON.stringify(metrics));
1180
 
 
 
 
1181
  const now = Date.now();
1182
  const totalDuration = ((now - generateStartTime) / 1000).toFixed(1);
1183
 
@@ -1254,33 +1262,22 @@ document.getElementById('generate-btn').addEventListener('click', async () => {
1254
  }
1255
 
1256
  // ==========================================
1257
- // 🌟 第三阶段:图像渲染与收尾(异步无阻塞解码)
1258
  // ==========================================
1259
- setTimeout(async () => {
1260
- try {
1261
- // 使用 URL.createObjectURL 而不是 Blob 读取,速度更快
1262
- const res = await fetch(imageBase64);
1263
- const blob = await res.blob();
1264
-
1265
- // 释放上一次的内存
1266
- if (window.currentBlobUrl) {
1267
- URL.revokeObjectURL(window.currentBlobUrl);
1268
- }
1269
- window.currentBlobUrl = URL.createObjectURL(blob);
1270
-
1271
- // 强制让出主线程,等图片加载完成再显示
1272
- resultImage.onload = () => {
1273
- resultImage.style.display = 'block';
1274
- setUIState(false); // 只有图片真正显示出来了,才恢复按钮
1275
- resultImage.onload = null;
1276
- };
1277
- resultImage.src = window.currentBlobUrl;
1278
-
1279
- } catch (e) {
1280
- console.error("图片渲染异常", e);
1281
- setUIState(false);
1282
  }
1283
- }, 100); // 延迟 100ms 让打字机先起跑
1284
  },
1285
  onError: (msg) => {
1286
  let shortMsg = msg;
 
206
  return;
207
  }
208
 
209
+ setTimeout(() => this.pollStatus(taskId, callbacks, retries + 1), 100);
210
  }
211
  else if (data.status === "success") {
212
+ // 如果后端返回的是绝对路径或 data: 开头,直接使用;否则拼接 API_BASE_URL
213
+ let finalImageUrl = data.image;
214
+ if (finalImageUrl && !finalImageUrl.startsWith('data:') && !finalImageUrl.startsWith('http')) {
215
+ finalImageUrl = `${API_BASE_URL}${finalImageUrl}`;
216
+ }
217
+ if (callbacks.onSuccess) callbacks.onSuccess(finalImageUrl, data.seed, data.metrics, data.filename);
218
  }
219
  else if (data.status === "error") {
220
  if (callbacks.onError) callbacks.onError(data.message);
 
1179
 
1180
  smartScroll()
1181
  },
1182
+ onSuccess: async (imageBase64, returnedSeed, metrics, filename) => {
1183
  placeholderText.style.display = 'none';
1184
  console.log("🚨 DEBUG METRICS:", JSON.stringify(metrics));
1185
 
1186
+ // 🌟 新增:打印后端传过来的文件名
1187
+ console.log("✅ 后端返回的正确文件名:", filename);
1188
+
1189
  const now = Date.now();
1190
  const totalDuration = ((now - generateStartTime) / 1000).toFixed(1);
1191
 
 
1262
  }
1263
 
1264
  // ==========================================
1265
+ // 🌟 第三阶段:图像渲染与收尾(极简模式)
1266
  // ==========================================
1267
+ setTimeout(() => {
1268
+ resultImage.onload = () => {
1269
+ resultImage.style.display = 'block';
1270
+ setUIState(false);
1271
+ resultImage.onload = null;
1272
+ };
1273
+
1274
+ // 🌟 核心:因为是 URL 了,加个时间戳防止浏览器缓存旧图
1275
+ if (imageBase64.startsWith('data:')) {
1276
+ resultImage.src = imageBase64;
1277
+ } else {
1278
+ resultImage.src = `${imageBase64}?t=${Date.now()}`;
 
 
 
 
 
 
 
 
 
 
 
1279
  }
1280
+ }, 100);
1281
  },
1282
  onError: (msg) => {
1283
  let shortMsg = msg;