TIL 200309

조양권·2021년 5월 17일

TIL

목록 보기
13/24
post-thumbnail

1. 오늘

  • 저번에 완성했던 pagination 의 오류를 수정했다.
  • 모든페이지를 display : none으로 설정한 뒤 현재 페이지와 앞뒤 페이지 2개씩만 드러나게 설정했다. visibility : hidden도 생각해 보았지만 visibility는 영역은 계속 차지한 채로 보이지만 않는 기능이라, 후에 정렬시 문제가 발생할듯 싶어 display : none을 사용했다.
<css>
.page_unvisible{
display : none
}
<script>
for(var n = 1; n < max_page+1; n++){
if(page == n){
$(".page_no" + n).removeClass('page_unvisible');
$(".page_no" + n).next().removeClass('page_unvisible');
$(".page_no" + n).next().next().removeClass('page_unvisible');
$(".page_no" + n).prev().removeClass('page_unvisible');
$(".page_no" + n).prev().prev().removeClass('page_unvisible');
              }
            }
  • $().next()와 $().prev()는 선택된 태그의 다음 형제태그, 이전 형제태그를 선택한다.

  • 항상 첫페이지와 마지막페이지는 드러나게 설정했다.
$('.pagination').append("<li class=" + "\'page_item page_no1\'" + "><a class =" + "\'page-link\'" + "onclick=" + "\'change_page(" + 1 + ")\'" + ">1</a></li>");#1페이지(첫페이지)
$('.pagination').append("<li class=" + "\'page_item page_no" + max_page + "\'" + "><a class =" + "\'page-link\'" + "onclick=" + "\'change_page(" + max_page + ")\'" + ">" + max_page + "</a></li>");
#마지막페이지(최대페이지)

  • 최대페이지가 1일경우(총 할인게임의 수가 16개 이하) 첫페이지와 최대페이지(1페이지)가 중복표시되는 경우가 있어 nth-child를 이용해 최대페이지링크는 제거했다.
if (max_page == 1){
              $('.pagination li:nth-child(2)').remove();
            }
  • 할인중인 게임에서 검색하는 기능을 완성했다.

  • 전체 플랫폼api에서 ajax요청을 한뒤 success안의 루프에서 조건문을 호출했다. 검색된 게임과 game_title이 일치하면 해당 game_title과 링크,이미지, 가격이 출력되게끔 했다.

2. 문제

  • 현재 문제는 검색어의 정확한 일치(대소문자 마저도)가 요구된다는 것이다. 비슷한 검색결과를 표시해주는 로직을 연구해야 한다.
  • api에 있지 않은, 그러니까 할인하지 않은 게임은 검색할 수 없다. 가장 게임이 많은 플랫폼인 스팀에서 전체게임목록을 크롤링해와야 할 필요가 있지만, 70000개 가까이 되는 양때문에 그 속도가 현저히 저하된다. 해결방법을 찾아야 한다.
profile
할 수 있는 것이 늘어나는 즐거움

0개의 댓글