Teeradon commited on
Commit
fb2c1c7
·
verified ·
1 Parent(s): 09e8455

Upload result.html

Browse files
Files changed (1) hide show
  1. result.html +18 -11
result.html CHANGED
@@ -323,9 +323,22 @@
323
  }
324
  }
325
 
326
- function loadImg(imgId, skId, b64) { const img=document.getElementById(imgId), sk=document.getElementById(skId);
327
- img.onload = ()=>{ sk.style.display='none'; img.style.display='block'; };
328
- img.src = 'data:image/jpeg;base64,'+b64;
 
 
 
 
 
 
 
 
 
 
 
 
 
329
  }
330
 
331
  // ── Lightbox (ดูรูปเต็ม) ──
@@ -366,14 +379,8 @@
366
  try {
367
  resultData = JSON.parse(raw);
368
  document.getElementById('main-content').style.display='flex';
369
- loadImg('orig-img','sk-orig', resultData.orig_b64);
370
- loadImg('result-img','sk-result', resultData.orig_b64);
371
- document.getElementById('result-img').onload = () => {
372
- // รอให้ browser วาดภาพลง DOM จริงๆ ก่อน
373
- requestAnimationFrame(() => {
374
- requestAnimationFrame(() => initSlider(resultData));
375
- });
376
- };
377
  applyLang(currentLang);
378
  renderDynamic();
379
  } catch(e) {
 
323
  }
324
  }
325
 
326
+ function loadImg(imgId, skId, b64, onDone) {
327
+ const img = document.getElementById(imgId);
328
+ const sk = document.getElementById(skId);
329
+ // set onload BEFORE src เพื่อไม่ให้ miss event
330
+ img.onload = () => {
331
+ if (sk) sk.style.display = 'none';
332
+ img.style.display = 'block';
333
+ if (onDone) requestAnimationFrame(() => requestAnimationFrame(onDone));
334
+ };
335
+ img.src = 'data:image/jpeg;base64,' + b64;
336
+ // กรณีที่ browser cache ภาพไว้แล้ว onload จะไม่ fire → เช็คด้วย complete
337
+ if (img.complete && img.naturalWidth > 0) {
338
+ if (sk) sk.style.display = 'none';
339
+ img.style.display = 'block';
340
+ if (onDone) requestAnimationFrame(() => requestAnimationFrame(onDone));
341
+ }
342
  }
343
 
344
  // ── Lightbox (ดูรูปเต็ม) ──
 
379
  try {
380
  resultData = JSON.parse(raw);
381
  document.getElementById('main-content').style.display='flex';
382
+ loadImg('orig-img', 'sk-orig', resultData.orig_b64);
383
+ loadImg('result-img', 'sk-result', resultData.orig_b64, () => initSlider(resultData));
 
 
 
 
 
 
384
  applyLang(currentLang);
385
  renderDynamic();
386
  } catch(e) {