2012-01-22 5 views
2

전체 동적 콘텐츠가 매우 작은 웹 사이트가 있습니다 (예 : < 50k). 사이트 자체는 대부분 바닐라 HTML로 구성된 5-10 페이지의 모음입니다. 헤더 등을 컨텐트의 나머지 부분과 분리하기 위해 일반적으로 AJAX를 사용합니다 (사용자가 무언가를 클릭 할 때마다 또는 AJAX 쿼리가 관련 HTML을 가져 오도록 미리).AJAX가없는 Javascript 변수에 HTML을로드하는 경우

이 경우 동적 콘텐츠가 너무 작기 때문에 모든 것을로드하기 위해 10 개의 AJAX 쿼리를 수행하는 것이 불필요합니다. 질문 : "웹 요청없이 다른 파일의 텍스트로 javascript 변수를로드하는 서버 측 방법이 있습니까?"

var page1 = "<p>Here's some web content!</p>" 
var page2 = "<p>And some more!</p>" 

문제 해결 :

물어 이유는 내가 방금로드 변수은 .js 파일을 만들어, 손으로이 작업을 수행하는 것이 매우 쉽게 될 것입니다. 이제는 내 콘텐츠가 자바 스크립트와 섞여 있다는 점을 제외하고 따옴표를 이스케이프 처리하는 것에 대해 걱정해야하며 들여 쓰기가 어려워졌습니다. 나는 확실히 서버 측 스크립팅 (PHP 또는 루비 또는 기타)을 할 수 있지만, 그렇게 간단한 일은 조금 무거워 보인다.

서버 쪽에서 더 깨끗한 방법이 있습니까? I 답변을 '아니오'라고 표시합니다. 수행 할 수있는 최선이라면 여기.

+0

그것은 PHP를위한 작업 같은 소리와 헤더를 취득,하지만 난 앉아서 제안의 일부를 볼 수 있습니다로 업데이트되었습니다. –

+2

서버 측 처리 프레임 워크를 사용하고 있습니까? .그물? PHP? 자바? node.js? – Jason

+1

다른 대안은 숨겨진 div/iframe 서버 측에 모든 HTML 스 니펫을 넣은 다음 클라이언트에서 'innerHTML'을 읽는 것입니다. 또는 더 정교한 : http://ejohn.org/blog/javascript-micro-templating/ – user123444555621

답변

1

는 동적으로 <script type="text/javascript" src="myJavaScriptGlobals.php"></script>

유무 PHP를 통해 자바 스크립트로 PHP 확장 파일을 정의 함께 모든 데이터를 당겨 출력 유효 자바 스크립트 수 있습니다.

echo ' 
var page1 = "'.str_replace('"','\"',$page1ContentFromFOPEN).'"; // escape double quotes 
'; 

이것은 그래서 당신은 페이지로드 및 page1 같이 할당 된 변수에서 인스턴트 컨텐츠로드를 달성 한 후 모든 HTTP 요청을 수행 할 필요가 없습니다 수 있습니다.

에만 스트립 따옴표

+0

여기서'stripslashes'의 목적은 무엇입니까? – Gumbo

+0

스트라이크 슬래시는 다른 문자에도 슬래시를 추가하므로 제거하려면 업데이트했습니다. \ "는 큰 따옴표로 둘러싸인 문자열 내에서 무시되며, 컨텍스트에서 사용될 때 스트립은 자바 스크립트에서 이스케이프 처리됩니다. –

+0

'stripslashes'는 사용자가 제안한 것과 반대가됩니다 : 이스케이프 문자'\ '를 제거합니다. – Gumbo

관련 문제