- Ajax는 빠르게 동작하는 동적인 웹 페이지를 만들기 위한 개발 기법
- Ajax는 웹 페이지 전체를 다시 로딩하지 않고도, 웹 페이지의 일부분만을 갱신 가능
-TCP School
<iframe src ="url" frameborder="0"> </iframe>
var cat = localStorage.getItem('myCat'); //조회
localStorage.setItem('myCat', 'Tom'); //추가
localStorage.removeItem('myCat'); //삭제
localStorage.clear(); // 전체삭제
이미 본 게시물을 새로고침 할 때마다 조회수가 올라감
localStorage를 활용하여,
내가 시도한 방법
<script>
function ArticleDetail__doIncreaseHitCount() {
///////////////////////////나의 시도///////////////////////////////
const hitId = localStorage.getItem("hitId");
const id = ${article.id};
const hitCount = localStorage.getItem("hitCount");
// 새로고침 여부 확인
if (hitId == id && hitCount == 1) {
return;
}
// localStorage에 현재 url 저장
localStorage.setItem("hitId", id);
localStorage.setItem("hitCount", 1);
///////////////////////////나의 시도///////////////////////////////
// Ajax - 게시물 클릭 시 조회수 증가
$.get('../article/doIncreaseHitCountRd', {
id : params.id,
ajaxMode : 'Y'
}, function(data) {
$('.article-detail__hit-count').empty().html(data.data1);
}, 'json');
}
$(function() {
// ArticleDetail__doIncreaseHitCount();
setTimeout(ArticleDetail__doIncreaseHitCount, 2000);
//2초 후 ArticleDetail__doIncreaseHitCount() 실행(조회수 증가)
})
</script>
강사님의 방법
<script>
function ArticleDetail__doIncreaseHitCount() {
///////////////////////////강사님///////////////////////////////
const localStorageKey = 'article__' + params.id + '__alreadyView';
if (localStorage.getItem(localStorageKey)) {
return;
}
localStorage.setItem(localStorageKey, true);
///////////////////////////강사님///////////////////////////////
$.get('../article/doIncreaseHitCountRd', {
id : params.id,
ajaxMode : 'Y'
}, function(data) {
$('.article-detail__hit-count').empty().html(data.data1);
}, 'json');
}
$(function() {
// ArticleDetail__doIncreaseHitCount();
setTimeout(ArticleDetail__doIncreaseHitCount, 2000);
})
</script>
문제상황:
-> 좋아요 클릭 시 +1 증가하지만, 누를때마다 증가 됨
-> 좋아요 클릭 후, detail페이지로 돌아가지 못함
DB에 좋아요 테이블 구현
Article에 likeCount컬럼 추가 o