fix: 타이밍 문제로 인한 화면 전환 실패 해결

🔍 Root Cause Confirmed:
- 콘솔에서 직접 실행 시 정상 작동 확인
- DOM 조작 코드는 정상이지만 타이밍 문제 존재
- 다른 스크립트나 CSS가 나중에 override하는 상황

🔧 Solution Applied:
- 화면 전환에 100ms 지연 추가
- setTimeout으로 다른 스크립트 완료 후 실행
- 앱 초기화와 로그인 폼 모두에 적용

 Timing Fix:
- 기존: 즉시 DOM 조작 → 다른 스크립트가 override
- 개선: 100ms 지연 → 모든 초기화 완료 후 화면 전환

🎯 Expected Result:
 로그인 화면 완전 숨김 (타이밍 문제 해결)
 메인 화면 안정적 표시
 다른 스크립트와의 충돌 방지

Debug Log:
🖥️ 지연된 화면 전환 시작
 메인 화면으로 전환 완료 (지연 후 강제 적용)
This commit is contained in:
Hyungi Ahn
2025-10-25 12:34:27 +09:00
parent b899567638
commit f929f0cdaa

View File

@@ -582,30 +582,30 @@
}
}, 500);
// 메인 화면 표시
console.log('🖥️ 화면 전환 시작');
const loginScreen = document.getElementById('loginScreen');
const mainScreen = document.getElementById('mainScreen');
console.log('loginScreen 요소:', !!loginScreen);
console.log('mainScreen 요소:', !!mainScreen);
if (loginScreen && mainScreen) {
// CSS 클래스와 인라인 스타일 모두 적용 (강제)
loginScreen.classList.add('hidden');
loginScreen.style.display = 'none';
// 메인 화면 표시 (타이밍 문제 해결을 위한 지연)
setTimeout(() => {
console.log('🖥️ 지연된 화면 전환 시작');
const loginScreen = document.getElementById('loginScreen');
const mainScreen = document.getElementById('mainScreen');
mainScreen.classList.remove('hidden');
mainScreen.style.display = 'block';
console.log('loginScreen 요소:', !!loginScreen);
console.log('mainScreen 요소:', !!mainScreen);
console.log('✅ 메인 화면으로 전환 완료 (강제 스타일 적용)');
console.log('loginScreen hidden:', loginScreen.classList.contains('hidden'));
console.log('loginScreen display:', loginScreen.style.display);
console.log('mainScreen hidden:', mainScreen.classList.contains('hidden'));
console.log('mainScreen display:', mainScreen.style.display);
} else {
console.error('❌ 화면 요소를 찾을 수 없음');
}
if (loginScreen && mainScreen) {
// CSS 클래스와 인라인 스타일 모두 적용 (강제)
loginScreen.classList.add('hidden');
loginScreen.style.display = 'none';
mainScreen.classList.remove('hidden');
mainScreen.style.display = 'block';
console.log('✅ 메인 화면으로 전환 완료 (지연 후 강제 적용)');
console.log('loginScreen display:', loginScreen.style.display);
console.log('mainScreen display:', mainScreen.style.display);
} else {
console.error('❌ 화면 요소를 찾을 수 없음');
}
}, 100); // 100ms 지연
// 데이터 로드
await loadProjects();
@@ -646,17 +646,19 @@
await window.commonHeader.init(currentUser, 'issues_create');
}
// 메인 화면 표시 (강제 스타일 적용)
const loginScreen = document.getElementById('loginScreen');
const mainScreen = document.getElementById('mainScreen');
loginScreen.classList.add('hidden');
loginScreen.style.display = 'none';
mainScreen.classList.remove('hidden');
mainScreen.style.display = 'block';
console.log('✅ 로그인 후 메인 화면 전환 완료');
// 메인 화면 표시 (타이밍 문제 해결을 위한 지연)
setTimeout(() => {
const loginScreen = document.getElementById('loginScreen');
const mainScreen = document.getElementById('mainScreen');
loginScreen.classList.add('hidden');
loginScreen.style.display = 'none';
mainScreen.classList.remove('hidden');
mainScreen.style.display = 'block';
console.log('✅ 로그인 후 메인 화면 전환 완료 (지연 후 강제 적용)');
}, 100);
// 데이터 로드
await loadProjects();