2012-11-12 2 views
1

여기이 마법 작품의 방법 모두에 대한 이해이다 JS 라이브러리의 포함은 PHP에서PHP는 (만약 내가 잘못 제발 올바른)

/JS/HTML/CSS 웹 사이트 페이지가 요청 될 때, 서버는 파일 (이 질문을 참조하기 위해 index.php)을 읽고, <?php ?> 태그/구조를 실행하고 작업을 수행합니다. 그런 다음 완성 된 작업을 하나의 완전한 페이지로 요청자에게 보냅니다. 그런 다음 요청자는 브라우저를 통해 파일을 읽고 "normal" 순서로 파일 (index.php)을 실행합니다. 내가 원하는 경우 여러 페이지가 나는 (일반적으로 안전하고 OK) 포함 할 수는 JS 같은 JS 스크립트와 라이브러리를 포함 : PHP를 통해

<script type="text/javascript" src="LIBRARY/1.js"></script> 
<script type="text/javascript" src="LIBRARY/2.js"></script> 
// etc... for libraries, then also include inline scripts like: 
<script type="text/javascript"> 
    $(document).onLoad(function(){ 
    }); 
</script> 
<script type="text/javascript"> 
    $(document).ready(function(){ 
    }); 
</script> 

이 포함

<!-- JS --> 
<?php include ("component/js.php"); ?> 

를이 가능한 경우 , 페이지의 맨 아래에 이들을 포함하는 것이 가장 좋습니까? 아니면 라이브러리가 맨 아래에 있어야합니까? onLoad이 맨 위에 있고 ready이 맨 아래에 있거나로드 시간 최적화를위한 다른 특정 위치에 있어야합니까?

+0

이해하신 내용이 정확합니다. 스크립트 태그를 포함 시키려면 스크립트에서 직접 또는 PHP가 포함하는 다른 PHP 파일에서 PHP로 페이지에 작성하십시오. 페이지를보고 소스를 보면 PHP가 생성하여 컴퓨터로 보낸 HTML을 볼 수 있습니다. 브라우저의 동작은 정적 HTML 페이지에 해당 내용을로드 한 것과 완전히 동일합니다. – octern

답변

1

, 그것은 의 하단에있는 페이지를 다음을 포함하는 것이 가장 좋습니다, 또는 라이브러리에 onLoad, 하단에있을 상단에 있어야한다 로드 시간 최적화를위한 위치?

문서 준비 콜백 기능에 JS를 모두 래핑하거나 단순히 태그를 하단에 배치하십시오. 그렇지 않으면 지연 또는 비동기 태그 속성을 사용하여 페이지로드시 막힘을 방지 할 수 있습니다.이 두 속성은 아직 지원되지 않습니다. '

당신은 JS 포함에 대한 코드를 재사용하는 방법에 대해 생각하고 좋은 일이 그 좋은 첫 단계는 등의 자산 파일을 관리 할 수 ​​있지만 : JS 소개

최적화를 포함 다시하고있어.

그러나 페이지를 렌더링하기 위해 처리 할 코드의 양이 많을수록 PHP 성능면에서 문제가 있습니다.

일부 개발자는 require.js와 같은 클라이언트 측 자산 관리자를 사용하기로 선택하는 이유입니다.

+0

당신은 더 많은 예를들 수 있습니까?/그것이 무엇인지 포함하고있는 것에 관해서'추가 재료 '에 대해 자세히 설명해 줄 수 있습니까? –

+0

내 진술을 업데이트했습니다. 여기서 내가 의미하는 바는 특정 컨트롤러 세트 (MVC가 예제에서 사용되었다고 가정)에 포함 된 파일의 영구 배열을 포함하는 객체 지향 자산 관리 솔루션을 사용하는 경우 모든 작업을 수행하는 데 필요한 처리가 불필요한 것입니다 php가 페이지 렌더링을 시작하기 전에, 비동기 자산 관리 솔루션을 사용하여 클라이언트 측에서 수행 한 경우 경험했던 빠른 로딩 시간과 비교할 때. – Kristian

0

onLoad 및 준비는 거의 동일한 기능이며 페이지가로드 된 후에 자바 스크립트를로드하므로 페이지 하단에 모든 자바 스크립트를 포함해야합니다.

+0

사실이 아닙니다. http://stackoverflow.com/questions/3698200/window-onload-vs-document-ready 스크립트는 코드에 포함하면 안됩니다. –

+0

는 게재 위치에 응답하지만 JS를 PHP 포함에 배치하는 것이 좋습니다. –

+0

조금 지나치게 과장된 것 같아요. Includes는 PHP 컨텐트에 사용됩니다. – Memoria

0

저는 개인적으로이 조언을 자주 듣기는하지만 자바 스크립트를 맨 아래에 두는 것을 권장하지 않습니다. 그것은 근본적으로 로딩 성능 및 스크립트 차단과 관련이 있으며, 오늘날의 현대적인 브라우저에서는 그다지 큰 문제가 아닙니다.

조직을 위해서, 나는 내 머리 글자를 쓰고 싶지만 마침내 개인적인 취향에 달려 있습니다. 심지어 recommends 야후 스크립트를 넣는 야후, 그래서 잘못 될 수 없습니다.

jQuery (곧 DOM 트리가 완전히 파싱되고 이미지가 완전히로드됨에 따라) 작업시 $(document.ready을 가져 와서 jQuery 자체를로드 한 후 초기화 코드를 넣으십시오.

웹 페이지의 요청 - 응답 분석에 대한 기본적인 이해는 정확합니다. , 바닥, 또는 다른 어떤 특정의 준비 이 가능한 경우

+0

현대적인 브라우저는 여전히 정상적인 스크립트 태그를로드 할 때 블로킹 동작을 보입니다. 사용자가 수행 할 수있는 작업은 defer 속성이나 async 속성을 사용하는 것이지만 모든 브라우저에서 지원되지는 않습니다. 스크립트 태그를 페이지의 맨 아래에 배치하는 것은 doc 준비 콜백에서 코드를 래핑하는 것과 같습니다 (또한 docready 래퍼지가 변수 캡슐화를 유발하므로 두려 우는 전역 변수의 사용이 증가해야 함). 페이지 렌더링시 시각적으로 느려지지 않습니다 dom 요소의 왜 많은 사람들이 (그리고 야후) 그렇게하는지. – Kristian

관련 문제