2012-01-24 4 views
-4

페이스 북을 사용하고 있었고 왼쪽 세로 메뉴에 다음 기능이 추가 된 것을 알게되었습니다.페이 스북에서 페이지를 빠르게 렌더링하는 방법

  • 페이지는
  • 페이지의 '뒤로'버튼이 페이지를 다시로드의
  • 일부만을 활성화 할 너무 빨리로드합니다.

"구현 방법"에 어떤 아이디어를 넣을 수 있습니까?

+0

"페이지를 다시로드의 일부"여기에서 찾을 수 있습니다. – contactmatt

답변

-1

AJAX 마지막으로 내가 해결책을 발견하여 수행됩니다. 그들은 jQuery 히스토리 플러그인과 함께 광범위하게 캐싱 기술을 사용하여 히스토리를 가능하게하여 검색 엔진 친화적으로 만든다.

아약스 요청입니다 http://itswadesh.wordpress.com/2012/03/29/facebook-type-vertical-navigation-menu-created-with-jquery/

+0

이것은 페이스 북이 빠른 이유에 불과합니다. 완전한 답이 아닙니다. – deadlock

0

모든 인프라 사이에서 그들은 Cassandra, Memcached, PHP는 C++로 컴파일 된 등을 사용합니다. Here 아래 Facebook에 대한 전체 설명입니다.

4

최상의 사용자 경험을 얻으려면이 유형의 패러다임을 사용하는 것이 좋습니다.

AJAX은 당신이 사용자에게 표시되는 페이지의 윤곽을 얻기 위해 필요한 최소한의 정보를 보내 친구

입니다. 콘텐츠 각 섹션에서 다음

<html> 
<head> 
...scripts, meta, css etc... 
</head> 
<body> 
<h1>Facebook Info</h1> 
<div id=facebook-info> 
<p>loading...</p> 
</div> 

<h1>Twitter Info</h1> 
<div id=twitter-info> 
<p>loading...</p> 
</div> 

</body> 
</html> 

(당신이 아직로드 할 수 있음)

는 스피너를 가지고있다.

자바 스크립트를로드 할 때 (명확하게하기 위해 약자로 사용하고 있습니다 ... 아약스 호출에 대한 자세한 내용은 http://jQuery.com/ 참조) 일부 JSON을 뱉어내는 특정 PHP 페이지를 호출 할 수 있습니다. 이것은 실제 작업이 일어나고 시간이 걸리는 곳입니다.

<script> 
$(document).ready(function(){ 
    $.ajax('/content/getFacebookInfo.php',displayFacebookContent); 
    $.ajax('/content/getTwitterInfo.php',displayTwitterContent); 
}); 
</script> 

그런 다음 displayFacebookContent 및 displayTwitterContent 콜백 함수에서 DOM의 내용을 동적으로 작성합니다.

<script> 
var displayTwitterContent = function(response) { 
    var html = "<ul>"; 
    foreach(var i in response.posts) { 
    html += "<li>" + response.posts[i].message + "</li>"; 
    } 

    html += "</ul>"; 
    $('#titter-info).append(html); 
}; 
</script> 

다시이이 개념을 보여주기 위해 축약, 당신은 스크립트를 구체화하고 또한 JSON 객체로 응답 PHP는 핸들러를 구축해야합니다.

AJAX 처리기로 어려운 작업을 처리하면 기본 HTML이 신속하게 제공되며 사용자는 만족합니다. 눈을 감을 때까지 AJAX 호출 중 일부가 완료되고 사용할 수있는 데이터가 DOM에 동적으로 삽입되어 표시됩니다.

Google 검색을 입력하는 것과 비슷합니다. 서버로 AJAX 호출을 다시 보내고 제출하기 전에 실시간으로 표시 할 콘텐츠를 가져옵니다.

웹 서버 수준뿐 아니라 응용 프로그램 수준에서 서버 측 캐싱에 대해 조사하십시오. 또한 네트워크 수준에서 수행 할 수있는 캐싱이 있습니다.

+0

예. 당신은 매우 사실입니다. 그러나이 경우 브라우저 기록이 작동하지 않습니다 (뒤로 버튼). 매우 검색 엔진 친화적이지 않습니다. –

1

난 더 이상 페이스 북의 내부에 매우 익숙하지 오전하지만 방법과 기술이 이러한 것들에 대한이 있습니다 : 당신이 소스를 보면

  • 당신이 일반 환경 페이스 북 만로드 자바 스크립트 소스 파일이 표시됩니다 . 빠른 JavaScript 무거운 응용 프로그램은 일반적으로 정적 압축 JavaScript (보기 파일 포함)를로드 한 다음 JSON에서 동적 데이터 만 요청한 다음 클라이언트에서 렌더링합니다.내가 가장 좋아하는 것은 여전히 ​​매우 빠른 컴파일 된 EJS입니다.
  • HTML5 준비가되어있는 브라우저에서 그들은 아마도 HTML 5 history을 사용합니다. 생성 된 URL은 정적 페이지를 가리키므로 직접 요청한 경우 실제 정보를 잃지 않습니다. 대체로 후위 버튼을 계속 작동시키는 해시 기반 기록을 수행 할 수 있습니다.
  • 이 단순히
관련 문제