javascript 공부를 하다가 ajax 사용법을 알게 되었다. 새로고침 없이 특정 부분에 다른 파일의 내용을 불러올 수 있다니 증말 신세계 ! 다만 ajax를 사용하면 검색엔진 최적화가 안된다는 치명적인 단점이 있는데, 이걸 pjax 라는걸 사용함으로써 해결 할 수 있다.
* ajax를 통해 새로고침 없이 웹서버와 통신이 이루어진다. 사용자에게는 좋은 경험을, 서버 운영자에게는 지출을 줄여주는 이득!
* 메뉴를 이동할 때, 부분적으로 웹페이지를 갱신할 수 있도록 해준다.
구조의 재사용~!
* ajax는 비동기 실행~! ajax가 실행되고 있는 중에도 다른 코드들이 실행될 수 있음.
* 바뀔 수 있는 부분은 서버로부터 동적으로 가져와서 넣음.
* ajax는 웹 서버를 통해서만 동작함. 로컬에서 확인 불가능.
* 바뀌어야하는 부분에 빈 태그 위치.
$("a").click(function(){
$("article").innerHTML("태그태그")
})
* ajax를 구현하기 위한 최신 방법 : fetch API 사용!
fetch('불러올파일이름') 한 다음 어떤 동작이 되도록.
* fetch API
: fetch() 는 ()안의 것을 웹브라우저한테 요청하는것. 데이터만 가져옴.
: .then() 은 fetch를 이용해 데이터를 가져오는 것이 끝난 후 ()안의 것을 실행하도록 하는것.
: fetch().then() 에서 then() 안에 들어가는 함수는 response객체를 입력값으로 주면서 호출할 것. response 객체는 fetch를 통해 데이터를 웹서버에 요청했을 때 웹서버가 응답한 결과를 담고 있는 객체이다.
ex ) fetch('파일이름').then(function(response){
response.text().then(function(text){
documenet.querySelector('#nav').innerHTML = text;
})
})
* fetch를 function 으로 정의해서 사용 가능함. 이때, 변동되는 부분은 매개 변수로 이용해서 fetch의 인자로 넣기.
ex)
function 함수이름(변동부분){
fetch(변동부분).then(function(response){
response.text().then(function(text){
documenet.querySelector('#nav').innerHTML = text;
})
});
}
* hash : 하나의 파일 내에서 내용을 찾을때, url을 통해서 찾을 수 있도록 내용을 감싸는 태그에에 id값을 주기.
url의 hash 값(ex. index.html#umin 에서는 #umin이 hash값)은 location.hash 를 이용해 불러올수 있음. 이때, #을 없애려면 location.hash.substr(1) 하기
ajax에서 쓸때는 a href="#!파일이름" 이런식으로 넣어준다. #!을 해쉬뱅 이라고 함. 이렇게 하면 a를 클릭할 때 ajax가 작동 하면서 url이 바뀐다.
url을 통해 들어갔을때 ajax가 작동하게 하려면, fetch를 function으로 지정해두고,
if (location.hash){
//hash가 있을때 적용되는것
지정한함수이름(location.hash.substr(2))
//ajax용 a 태그 href에는 #! 이 들어가므로 substr(2)
} else {
//hash가 없을때 적용되는것
}
* 하나의 파일에서 , 을 기준으로 나누어 배열을 만들고싶을때
ex)
text 에는 list라는 파일의 text 값 (a,b,c,d)이 담겨져 있음.
text.split(',') -> text에 있는 문자열을 , 을 기준으로 하나하나 쪼개 배열로 만드는 식.
* 배열 안에서 무의미한 줄바꿈 혹은 공백을 없앨때
배열.trim(); 해준다.
* fetch 의 브라우저 지원율 확인. id11에서 안됨....호환성문제 !
-> fetch의 polyfill : 지원되지않는 브라우저들도 fetch를 사용할수 있도록 해주는것. fetch.js가 있다. 브라우저가 지원된다면 fetch.js를 script src로 넣어도 동작하지 않고 브라우저 고유의 기능이 사용된다. 지원되지 않는 브라우저에서만 동작한다.
******** ajax를 이용하면 검색엔진 최적화가 안됨. **********
# xml
# JSON
# ajax를 이용한 이런 페이지를 Single Page Application, 즉 SPA 라고 한다.
# PJAX - ajax같은 부분적인 로드 기능을 하면서도 검색엔진에도 최적화되게끔. ajax가 발전된 형식.
# Progressive Web Apps - PWA. SPA를 기반으로 만들어진 웹에 오프라인에서도 동작하는 특성이 추가된 것. online + offline !
+@ 파일의 상태(status)가 200 = 성공적으로 찾았다는 의미. 404 = 파일이 없다는 의미.
+@ response객체의 어떠한 값을 가져올때는 response.값이름 으로 불러온다. (ex. response.status ->response 객체의 status 값)
---------------------------------------------------------------------------------
PJAX 사용법 )
'기타 정보' 카테고리의 다른 글
스터디 - SCSS (0) | 2019.07.24 |
---|---|
생활코딩 스터디 - javascript_2 (0) | 2019.02.28 |
생활코딩 스터디 - javascript_1 (0) | 2019.02.28 |
[추천] 유료이미지 사이트 추천, 유토이미지 (0) | 2018.01.17 |
[Tip] PDF 파일 용량 줄이기, smallpdf (0) | 2018.01.17 |