SlideShare ist ein Scribd-Unternehmen logo
1 von 18
HTML5 PushState + AJAX
                 =PJAX
             박준태 (알케이준)
              Twitter : @rkjun

        HTML5JS공부모임 3회오프
about.me

이름: 박준태 (Park, Juntai)

닉네임: rkJun (알케이준)

Freelance Web Developer (java)
트위터 : twitter.com/rkjun

블로그 : rkjun.wordpress.com

github : github.com/rkjun
about.me : about.me/rkjun
오늘의 주제



pjax 공부하기
(pushState + ajax = pjax)
pjax 공부하기 전에



pjax = pushState + ajax
what is ajax?
what is pushState?
일반적인 웹페이지 이동


1.웹 브라우저
2.서버호출
3.데이터 가져올 때까지 기다림
4.가져온 후 화면 표시 (동기통신)
Ajax 의 등장


Asynchronous JavaScript and XML
페이지이동없이, 빠른 화면전환
서버처리를 기다리지 않고, 비동기 요청 가능
수신 데이터량 감소 (데이터만 수신..)
Ajax 사용하기



new XMLHTTPRequest();


$.ajax(); //jQuery

new Ajax.request(); //prototype.js
Ajax의 한계?


BACK 버튼 이전페이지 이동 불가
HTML 소스보기로 사이트의 내용을
알기 어렵다.
구글링 불가
hashbang 의 등장


hash (#), bang(!)
https://twitter.com/#!/rkJun (트위터)
2~3년전부터 등장 (twitter, facebook,
filickr...)
hashchange event
hashbang 옳지 않아?

Back 버튼에 의해 이전 페이지 이동은 가능


검색엔진 검색불가 (SEO불가)
   SEO (Search Engine Optimization : 검색엔진 최적화)

구글링 가능 (#!을 ?_escaped_fragment_ 로 처리)
https://twitter.com/?_escaped_fragment_/rkjun
JavaScript dependency
HTML5



HTML5 history API
pushState
history.pushState(data, title, url);
pjax



ajax, hashbang 의 한계를 뛰어넘음
Back 버튼 OK
JavaScript independency
pjax

HTML5 history.pushState + ajax
pjax (jQuery Plugin)
URL 을 가짐
뒤로가기 OK
SEO OK
CURL OK
pjax



<a href='/explore' data-pjax='#main'>Explore</a>
$('.js-pjax').pjax('#main')
pjax call
$.pjax({
 url: '/authors',
 container: '#main'
})
========================================
$.ajax({
 url: '/authors',
 dataType: 'html',
 beforeSend: function(xhr){
     xhr.setRequestHeader('X-PJAX', 'true')
 },
 success: function(data){
     $('#main').html(data)
     history.pushState(null, $(data).filter('title').text(), '/authors')
 })
pjax on the server side



Request Header “X-PJAX:true”
X-PJAX 값에 의한 layout 분기
sample



http://padrino-pjax.heroku.com/
http://rkjun.github.com/pjax
참고사이트

위키백과 http://ko.wikipedia.org/wiki/Ajax

Google Developers Making AJAX Applications Crawlable Full Specification
https://developers.google.com/webmasters/ajax-crawling/docs/specification?
hl=ko

해쉬뱅(#!) 에 대해서 http://blog.outsider.ne.kr/698

w3.org history http://www.w3.org/TR/html5/history.html#history

HTML5とか勉強会-PJAX http://b.hatena.ne.jp/entry/www.slideshare.net/
KensakuKOMATSU/19html5

jquery-pjax https://github.com/defunkt/jquery-pjax

Weitere ähnliche Inhalte

Ähnlich wie pjax

Front-end Development Process - 어디까지 개선할 수 있나
Front-end Development Process - 어디까지 개선할 수 있나Front-end Development Process - 어디까지 개선할 수 있나
Front-end Development Process - 어디까지 개선할 수 있나JeongHun Byeon
 
vine webdev
vine webdevvine webdev
vine webdevdcfc1997
 
처음배우는 자바스크립트, 제이쿼리 #4
처음배우는 자바스크립트, 제이쿼리 #4처음배우는 자바스크립트, 제이쿼리 #4
처음배우는 자바스크립트, 제이쿼리 #4성일 한
 
ReactJS | 서버와 클라이어트에서 동시에 사용하는
ReactJS | 서버와 클라이어트에서 동시에 사용하는ReactJS | 서버와 클라이어트에서 동시에 사용하는
ReactJS | 서버와 클라이어트에서 동시에 사용하는Taegon Kim
 
Html5 앱과 웹사이트를 보다 빠르게 하는 50가지
Html5 앱과 웹사이트를 보다 빠르게 하는 50가지Html5 앱과 웹사이트를 보다 빠르게 하는 50가지
Html5 앱과 웹사이트를 보다 빠르게 하는 50가지yongwoo Jeon
 
Opinion 프로젝트 발표 자료
Opinion 프로젝트 발표 자료Opinion 프로젝트 발표 자료
Opinion 프로젝트 발표 자료joonseokkim11
 
챗봇 시작해보기
챗봇 시작해보기챗봇 시작해보기
챗봇 시작해보기성일 한
 
.NET에서 비동기 프로그래밍 배우기
.NET에서 비동기 프로그래밍 배우기.NET에서 비동기 프로그래밍 배우기
.NET에서 비동기 프로그래밍 배우기Seong Won Mun
 
정적 컨텐츠 제너레이터 GatsbyJS에 대해서 알아봅시다.
정적 컨텐츠 제너레이터 GatsbyJS에 대해서 알아봅시다.정적 컨텐츠 제너레이터 GatsbyJS에 대해서 알아봅시다.
정적 컨텐츠 제너레이터 GatsbyJS에 대해서 알아봅시다.Kenneth Ceyer
 
Role Of Server In Ajax Korean
Role Of Server In Ajax KoreanRole Of Server In Ajax Korean
Role Of Server In Ajax KoreanTerry Cho
 
Create-React-App으로 SSR을 구현하며 배운 점 (feat. TypeScript)
Create-React-App으로 SSR을 구현하며 배운 점 (feat. TypeScript)Create-React-App으로 SSR을 구현하며 배운 점 (feat. TypeScript)
Create-React-App으로 SSR을 구현하며 배운 점 (feat. TypeScript)LanarkSeung
 
overview of spring4
overview of spring4overview of spring4
overview of spring4Arawn Park
 
JQuery를 이용하여 웹 위젯 작성하기_(주)시스포유아이앤씨
JQuery를 이용하여 웹 위젯 작성하기_(주)시스포유아이앤씨JQuery를 이용하여 웹 위젯 작성하기_(주)시스포유아이앤씨
JQuery를 이용하여 웹 위젯 작성하기_(주)시스포유아이앤씨sys4u
 
2.Connect Sunshine to the Cloud - 시온고 안드로이드 스터디
2.Connect Sunshine to the Cloud - 시온고 안드로이드 스터디2.Connect Sunshine to the Cloud - 시온고 안드로이드 스터디
2.Connect Sunshine to the Cloud - 시온고 안드로이드 스터디Youngbin Han
 
JSP 빠르게 시작하기
JSP 빠르게 시작하기JSP 빠르게 시작하기
JSP 빠르게 시작하기Park JoongSoo
 
Node.js and react
Node.js and reactNode.js and react
Node.js and reactHyungKuIm
 
Ksug2015 jpa5 스프링과jpa
Ksug2015 jpa5 스프링과jpaKsug2015 jpa5 스프링과jpa
Ksug2015 jpa5 스프링과jpaYounghan Kim
 
진짜기초 Node.js
진짜기초 Node.js진짜기초 Node.js
진짜기초 Node.jsWoo Jin Kim
 

Ähnlich wie pjax (20)

4-3. jquery
4-3. jquery4-3. jquery
4-3. jquery
 
4-2. ajax
4-2. ajax4-2. ajax
4-2. ajax
 
Front-end Development Process - 어디까지 개선할 수 있나
Front-end Development Process - 어디까지 개선할 수 있나Front-end Development Process - 어디까지 개선할 수 있나
Front-end Development Process - 어디까지 개선할 수 있나
 
vine webdev
vine webdevvine webdev
vine webdev
 
처음배우는 자바스크립트, 제이쿼리 #4
처음배우는 자바스크립트, 제이쿼리 #4처음배우는 자바스크립트, 제이쿼리 #4
처음배우는 자바스크립트, 제이쿼리 #4
 
ReactJS | 서버와 클라이어트에서 동시에 사용하는
ReactJS | 서버와 클라이어트에서 동시에 사용하는ReactJS | 서버와 클라이어트에서 동시에 사용하는
ReactJS | 서버와 클라이어트에서 동시에 사용하는
 
Html5 앱과 웹사이트를 보다 빠르게 하는 50가지
Html5 앱과 웹사이트를 보다 빠르게 하는 50가지Html5 앱과 웹사이트를 보다 빠르게 하는 50가지
Html5 앱과 웹사이트를 보다 빠르게 하는 50가지
 
Opinion 프로젝트 발표 자료
Opinion 프로젝트 발표 자료Opinion 프로젝트 발표 자료
Opinion 프로젝트 발표 자료
 
챗봇 시작해보기
챗봇 시작해보기챗봇 시작해보기
챗봇 시작해보기
 
.NET에서 비동기 프로그래밍 배우기
.NET에서 비동기 프로그래밍 배우기.NET에서 비동기 프로그래밍 배우기
.NET에서 비동기 프로그래밍 배우기
 
정적 컨텐츠 제너레이터 GatsbyJS에 대해서 알아봅시다.
정적 컨텐츠 제너레이터 GatsbyJS에 대해서 알아봅시다.정적 컨텐츠 제너레이터 GatsbyJS에 대해서 알아봅시다.
정적 컨텐츠 제너레이터 GatsbyJS에 대해서 알아봅시다.
 
Role Of Server In Ajax Korean
Role Of Server In Ajax KoreanRole Of Server In Ajax Korean
Role Of Server In Ajax Korean
 
Create-React-App으로 SSR을 구현하며 배운 점 (feat. TypeScript)
Create-React-App으로 SSR을 구현하며 배운 점 (feat. TypeScript)Create-React-App으로 SSR을 구현하며 배운 점 (feat. TypeScript)
Create-React-App으로 SSR을 구현하며 배운 점 (feat. TypeScript)
 
overview of spring4
overview of spring4overview of spring4
overview of spring4
 
JQuery를 이용하여 웹 위젯 작성하기_(주)시스포유아이앤씨
JQuery를 이용하여 웹 위젯 작성하기_(주)시스포유아이앤씨JQuery를 이용하여 웹 위젯 작성하기_(주)시스포유아이앤씨
JQuery를 이용하여 웹 위젯 작성하기_(주)시스포유아이앤씨
 
2.Connect Sunshine to the Cloud - 시온고 안드로이드 스터디
2.Connect Sunshine to the Cloud - 시온고 안드로이드 스터디2.Connect Sunshine to the Cloud - 시온고 안드로이드 스터디
2.Connect Sunshine to the Cloud - 시온고 안드로이드 스터디
 
JSP 빠르게 시작하기
JSP 빠르게 시작하기JSP 빠르게 시작하기
JSP 빠르게 시작하기
 
Node.js and react
Node.js and reactNode.js and react
Node.js and react
 
Ksug2015 jpa5 스프링과jpa
Ksug2015 jpa5 스프링과jpaKsug2015 jpa5 스프링과jpa
Ksug2015 jpa5 스프링과jpa
 
진짜기초 Node.js
진짜기초 Node.js진짜기초 Node.js
진짜기초 Node.js
 

pjax

Hinweis der Redaktion

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n