검색엔진 필터링 속도가 느립니다.
0x00000FF opened this issue · 4 comments
추가를 원하는 기능이 무엇인가요? What kind of feature you are requesting?
- 논문 웹페이지 추가 지원 (more journal page support)
- 나무위키 제거 검색엔진 추가 (more search result filters for Search Engine)
- UX (사용자 경험) 개선 (User Experience Enhancements)
- 그 외 (Others)
어떤 기능을 추가했으면 좋을까요? (What feature you are requesting?)
정확하게 설명해 주세요 (Please explain it in detail)
구글 검색결과에서 나무위키가 조금 시간을 두고 없어지길래 코드를 확인해보니 remove() 를 사용하고 계시더라고요.
Tvple Eraser를 개발하면서 경험한 것인데, 직접 엘리먼트를 제거하는 것 보다는 스타일로 가려버리는게 성능상 이득이 있었습니다.
방금 Chromium Edge 79.0.309.15 (Official build) (64-bit)에서 테스트 한 결과입니다.
(검색 키워드 fsd
)
console.time("asdf");
document.querySelector("#rso > div:nth-child(1) > div > div:nth-child(1) > div > div > div.r > a > div").remove();
console.timeEnd("asdf");
VM422:1 asdf: 0.2041015625ms
console.time("asdf");
document.querySelector("#rso > div:nth-child(1) > div > div:nth-child(1) > div > div > div.r > a > div").style= "display:none";
console.timeEnd("asdf");
VM597:1 asdf: 0.068115234375ms
직접 PR을 넣어보고 싶었는데 아무래도 TS는 익숙치 않다보니 직접 수정하실 수 있도록 이슈로 넣게 되네요. 한번 테스트 해보시고 괜찮다 싶으시면 적용해보시기 바랍니다.
현재 검색엔진 필터 속도가 많이 느리다 보니, 이슈에 나온 대로 퍼포먼스 향상이 많이 이루어 진다면 바로 수정 하겠습니다.
Milestone: 0.6.3
style.display = "none"; 퍼포먼스: 9.07ms
제 테스트를 해본 결과 굉장히 인상적인 결과가 나왔습니다.
참고로 GitHub 웹페이지 에서 검사를 했을 때에는 굉장히 다른 결과입니다.
제 개인적인 생각으로는 아마도 div 아래에 nested div가 많아 그런것 같다는 생각을 해봅니다만, 자세한 것은 조금 더 알아봐야 겠네요.
참고로 검색에서 지워지는 속도가 느린 이유는, 현재 필터 방식이 URL을 스캔하여 만일 URL이 Regular Expression 검사에 걸리는 경우에 tab으로 Javascript 코드를 Inject 하는 방식으로 이루어져 있습니다. 이 과정에서 asynchronous function을 사용하고 있으며, Google 로드 타임에 영향을 주지않기 위해 Google의 다른 JS 코드가 로드 된 후, 다른 쓰레드에서 구동됩니다. (inject되는 script 코드가 맨 뒤로 가도록 짜여있음)
더 좋은 방안이 있다면 피드백은 환영입니다!
아무래도 이건 사이트 디자인마다 사정이 다른가 보네요 🤔
구글은 뭔가 삽입하거나 삭제할때 이벤트를 많이 걸던데 여기를 걸고 넘어져도 괜찮지 않나 싶습니다.
인자를 추적해서 값을 조작할 수 있다면 화면에 뿌리기 전에 삭제해버릴 수 있을테니까요.
일단 계속 찾아보고 있긴 한데, 유의미한 결과가 나오면 다시 말씀드려보겠습니다.
기술적 방안이 나올때 까지 이슈를 닫도록 하겠습니다.
제안 방안이 있다면 언제든 열어주세요!