2011-01-30 3 views
1

올바른 방법이 있는지 궁금합니다. AJAX를 사용하여 스크립트를 동적으로로드 할 때 서버의 스크립트에 URL을 전달한 후 다음을 실행하는 옵션이 있습니다. <script src = response.url ></script> 또는 그냥 스크립트 자체를 다시 전달합니다.동적로드 중 : URL을 스크립트에 전달하거나 스크립트 자체를 다시 전달 하시겠습니까?

콘텐츠 스크립트 자체를 다시 전달하는 방식은 두 가지가 아니라 하나의 왕복을 사용하기 때문에 발생했습니다. 또한 일부 CSS 또는 다른 자산을 다시 전달하기 때문에. 그러나 facebook이 CDN 리소스로 URL을 전달한다는 것을 알았 기 때문에, 내 접근 방식에 내가 간과하고있는 결과가 있는지 궁금 하네.

감사합니다. Matt

답변

2

당신이 페이스 북 일 때, 당신은 약간 독특한 트래픽 패턴을보고 있습니다. 동적 서버에서 30 문자를 보내는 스크립트 대 20KB를 다시 보내면 해당 서버에서 훨씬 많은로드가 발생합니다. 또한, 그들은 빠른 속도로 큰 콘텐츠를 제공하지 못할 수도 있습니다.

반대로 CDN 서버는 속도와 규모에 맞게 설계된 영광스러운 정적 프록시입니다. 따라서 페이 스북의 관점에서 볼 때 추가 왕복은 전반적인 페이지 속도를 향상시킬 수 있고 서버 트래픽 패턴을 확실히 향상시킬 수 있기 때문에 의미가 있습니다.

다시 알려드립니다. 이 방법은 나머지 사이트와 동일한 서버에서 스크립트를로드하려는 경우 의미가 없습니다. CDN에 대한 액세스 권한이있는 경우 사용자에 대한 다양한 가정 (대기 시간, 위치), 사이트에 대한 사실 (스크립트 크기, 스크립트로드 시간)을 사용하여 수학을 수행하고 기본 스크립트를 제공하는 여분의 왕복과 스크립트를 배포하는 CDN 서버에 비해 주 서버가 해당 스크립트를 제공해야합니다.

라운드 트립에 대한 또 하나의 생각 : 내가 페이스 북이라면 실제로 페이지가 스크립트를로드해야하기 전에 초기에 해당 CDN URL을 나눠주고있을 것입니다. 이상적으로, 나는 약간의 여분의 데이터를 몰래 넣으려는 또 다른 요청을 피기 백하고 싶다. 그것은 여분의 왕복 문제를 대부분 논란의 여지가있게 만든다.

+0

좋은 글. 이것을 의미합니까? "*하지 않으면 *이 접근법은 이해가되지 않을 것입니다 ..."? 또는 나는 무엇인가 놓치고 있냐? – Matt

+1

아니요, 2 단계 접근 방식의 주된 장점은 범용 동적 서버보다 정적 컨텐츠를 제공하는 것이 더 나은 서버에서 스크립트를 가져 오는 것입니다. 동일한 서버 세트에서 모든 작업을 수행한다면이 방법에 별다른 이점이 없습니다. – Metal

+0

오, 내가 잡았다. 내 접근 방식이 아니라 페이스 북의 접근 방식에 거의 도움이되지 않았다. 감사! – Matt

0

흠, AJAX와의 몇 가지 도메인 간 보안 문제가 있습니다. 즉, 외부 CDN에서 스크립트의 콘텐츠를 동적으로로드하려는 경우 이러한 문제를 해결해야합니다. 발행 ...

+0

답변 해 주셔서 감사합니다. 나는 그것을 분명히해야만했음을 유감스럽게 생각한다 : 그것의 페이스 북의 서브 도메인이지만, 그것은 정말로 질문의 관련 부분이 아니다. 편집 : 그들은 또한 AJAX 대신로드하기 위해 iframe을 사용하므로 문제가 꽤 확실 해요. – Matt

관련 문제