[20250724] WebOS TV 최적화 및 오류 처리 개선
1. App.js: applyTemplate 기능 제거로 5286 디버그 모드 무한 리로드 문제 해결 2. TLogEvent.js: XML 변환기 오류 무시 처리로 콘솔 오류 메시지 제거 3. CSS 최적화: will-change 속성 주석 처리로 메모리 사용량 개선 - CustomImage.module.less: will-change: opacity 제거, GPU 가속 대안 추가 - MediaControls.module.less: will-change: opacity 제거 - MediaSlider.module.less: will-change: opacity 제거 - FeedbackTooltip.module.less: will-change: transform 제거, GPU 가속 대안 추가 WebOS TV 환경에서의 성능 최적화 및 사용자 경험 개선
This commit is contained in:
@@ -71,6 +71,8 @@ import { sendLogTotalRecommend } from "../actions/logActions";
|
||||
// } from "../utils/focus-monitor";
|
||||
// import { PanelHoc } from "../components/TPanel/TPanel";
|
||||
|
||||
|
||||
|
||||
let foreGroundChangeTimer = null;
|
||||
|
||||
// 기존 콘솔 메서드를 백업
|
||||
@@ -154,6 +156,8 @@ function AppBase(props) {
|
||||
// const termsFlag = useSelector((state) => state.common.termsFlag);
|
||||
const termsData = useSelector((state) => state.home.termsData);
|
||||
|
||||
|
||||
|
||||
useEffect(() => {
|
||||
// Chromium68 호환성을 위해 Optional Chaining 제거
|
||||
if (termsData && termsData.data && termsData.data.terms) {
|
||||
|
||||
@@ -88,6 +88,19 @@ export const TLogEvent = (
|
||||
}
|
||||
})
|
||||
.catch((error) => {
|
||||
const errorMessage = error && error.message ? error.message : '';
|
||||
const requestUrl = error.config && error.config.url ? error.config.url : '';
|
||||
|
||||
// /lgsp/v1/log/recommend.lge 엔드포인트의 XML 오류만 무시
|
||||
if ((errorMessage.includes('XML') ||
|
||||
errorMessage.includes('요소 없음') ||
|
||||
errorMessage.includes('element')) &&
|
||||
requestUrl.includes('/lgsp/v1/log/recommend.lge')) {
|
||||
console.log('[TLogEvent] XML parsing error ignored for recommend endpoint');
|
||||
return; // recommend 엔드포인트의 XML 오류만 무시
|
||||
}
|
||||
|
||||
// 다른 엔드포인트의 오류는 정상 처리
|
||||
if (onFail) {
|
||||
onFail(error);
|
||||
}
|
||||
|
||||
@@ -4,7 +4,10 @@
|
||||
&.hidden {
|
||||
opacity: 0;
|
||||
}
|
||||
will-change: opacity;
|
||||
/* will-change: opacity; // WebOS TV 메모리 최적화를 위해 주석 처리 */
|
||||
/* Chromium 68 호환성을 위한 GPU 가속 대안 */
|
||||
transform: translateZ(0);
|
||||
backface-visibility: hidden;
|
||||
&:not(.hidden) {
|
||||
&.slow {
|
||||
transition: opacity 500ms ease-in-out;
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
left: 614px;
|
||||
}
|
||||
&.hidden {
|
||||
will-change: opacity;
|
||||
/* will-change: opacity; // WebOS TV 메모리 최적화를 위해 주석 처리 */
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
width: 324px;
|
||||
}
|
||||
&.hidden {
|
||||
will-change: opacity;
|
||||
/* will-change: opacity; // WebOS TV 메모리 최적화를 위해 주석 처리 */
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
@@ -78,7 +78,7 @@
|
||||
border-radius: 50%;
|
||||
transform: @knob-transform-resting;
|
||||
// opacity: 0;
|
||||
will-change: transform, opacity;
|
||||
// will-change: transform, opacity; // 메모리 소비 문제로 제거
|
||||
-webkit-transition: -webkit-transform @activate-transition-function 0.2s,
|
||||
opacity ease 0.2s;
|
||||
transition: transform @activate-transition-function 0.2s,
|
||||
|
||||
@@ -36,7 +36,9 @@
|
||||
.thumbnail,
|
||||
.content {
|
||||
pointer-events: none;
|
||||
will-change: transform;
|
||||
/* will-change: transform; // WebOS TV 메모리 최적화를 위해 주석 처리 */
|
||||
/* Chromium 68 호환성을 위한 GPU 가속 대안 */
|
||||
transform: translateZ(0);
|
||||
}
|
||||
|
||||
.thumbnail {
|
||||
|
||||
Reference in New Issue
Block a user