미디어위키토론:Gadget-DB2.js
새 주제별도의 중요 버그가 아니면 새 주제 버튼을 매번 사용하고, 특정 버그의 파생형이 아닌 이상 같은 문단에 추가하지 말것
20201230 버그 트래커[원본 편집]
- 문제
- 현재 로그인한 사람에게만 DB2 틀이 적용되는 형태로, 익명 사용자에게는 localStorage가 궁극적으로 Storage로 넘어가야하나, 관련 정보가 제대로 넘겨져 처리되지 않는 것으로 보임, 처리 기간은 데이터베이스의 느린 갱신을 볼 때 최소 며칠은 잡아야 할 것으로 보임 --Senouis(토론장, 기여)2020년 12월 30일 (수) 19:42 (KST)
- 해결됨 --Senouis(토론장, 기여)2020년 12월 31일 (목) 09:28 (KST)
- 원인
- localStorage와 mw.user.options를 단일 인터페이스로 통합하는 IP 사용자용 hybridStorage Proxy 객체의 localStorage에서 상속된 함수가 localStorage를 참조하지 않고 hybridStorage를 참조함.참고 --hsl(토론, 기여, 게임, 메일) 2021년 1월 5일 (화) 21:43 (KST)
- 해결
- r265501: 문제가 되는 함수에 localStorage bind 처리 --hsl(토론, 기여, 게임, 메일) 2021년 1월 5일 (화) 21:43 (KST)
의문 하나[원본 편집]
var useCGIProtect = document.getElementsByClassName('protectCGI')[0];
부분이 작동하는가 의문스럽네요. 지금 해당 엘리먼트 클래스를 가진 문서가 리버티게임 내에 없고, 원래 용도로 추측되는 틀:CGI보호에는 태그 id 속성에 'protectCGI'가 있으며, 결정적으로 LocalStorage 저장에 protectCGI 키를 사용하는 값은 protectCGI id를 가진 엘리먼트가 있어야 저장/가져오기가 되는 것 같습니다.
var useCGIProtect = document.getElementById('protectCGI');
로 수정해야 할까요? --Senouis(토론장, 기여) 2024년 6월 10일 (월) 21:12 (KST)
- 오 그동안 CGI보호를 DB2와 함께 썼을 때 발생하는 버그를 잡지 못했고 결국 사실상 때려쳤는데 이거 때문일 수도 있겠네요. 수정해도 좋습니다 :) --hsl(토론, 기여, 게임, 메일) 2024년 6월 11일 (화) 13:51 (KST)
- 코드는 수정했습니다. 이제 잘 작동하는지 확인해야겠네요. --Senouis(토론장, 기여) 2024년 6월 12일 (수) 10:36 (KST)
리팩토링?[원본 편집]
혹시 여기도 타입스크립트/ES6 문법으로 모듈/클래스 작성을 한 다음 ES5로 변환하는 부분이 필요하지 않을까요? 이 소도구 스크립트 문서 안에 다음과 같이 역할이 여러 개가 있는 것이 유지보수를 어렵게 한다고 생각합니다.
- enableDB2 내부에 DataChange 프로토타입 선언 및 정의(별도의 내부 클래스로 분리 가능)
- enableDB2의 encode/decode 등 각종 유틸리티 정의(DB2 틀의 핵심이 아닌 부분, 다른 소도구에서도 유용하게 사용 가능)
- windows 아래 setStoragePrefix와 같은 다수의 메서드 생성(DB2 틀의 핵심)
- '특수:빈문서/DB2' 생성(DB2-Special 소도구와 연계)
CGI2랑 CGI2-parser 소도구의 사례처럼 개발 서버에서 Gadget-DB2-dev2024라는 임시 소도구를 만들어서 분리를 시도하는 것이 어떨까요? 적어도 첫 번째랑 두 번째 역할은 별도 소도구 분리가 가능할 것 같습니다. --Senouis(토론장, 기여) 2024년 6월 12일 (수) 11:07 (KST)
- 이미 리팩토링을 진행하고 있습니다. [1] 아예 자바스크립트 인터페이스를 호환성 없이 갈아엎었고요. (기존 저장된 option 데이터는 계속 호환됩니다.) --hsl(토론, 기여, 게임, 메일) 2024년 6월 13일 (목) 11:47 (KST)
- 감사합니다. 일단 위에 있던 useCGIProtect 문제에 관해 PR 넣었습니다. 저도 기여자로 참가해도 될까요? --Senouis(토론장, 기여) 2024년 6월 13일 (목) 13:56 (KST)