에 대한 동일한 출력을 사용합니다.
test(arg)
함수를 Javascript 파일에 복사하면 #genstr#
도 복사하는 것입니까? 그래서 js 파일에서 위와 똑같이 보입니다.
이것은 의도 한대로 작동합니다. .js 파일은 콜드 퓨전을 처리하지 않으며 개발자 콘솔을 보면 구문 오류가 발생했을 수 있습니다.
문서에 인라인으로 유지하거나 js 파일의 확장자를 .cfm으로 변경할 수 있습니다.
이 시점에서 js_main.cfm
(예) 파일은 다른 브라우저에서 요청한 파일처럼 취급되며 요청 처리가 있으면 헤더 및 푸터가 삭제되므로 더 많은 오류가 발생합니다. 이 파일들을 보호해야합니다. 당신은
<!--- This checks the path to make sure it doesn't contain livemedia. --->
<cfif not listfind(cgi.script_name,"livemedia","/")>
... do includes
</cfif>
같은 응용 프로그램 파일에 일부 cfifs이 작업을 수행 할 수 있습니다 또는 당신은 아마 할 것 좋아해요 그냥 자신의 응용 프로그램과 함께 CFM 확장과 함께, CSS 파일을 JS를 제공하기위한 폴더에이 파일을 잠글 수 있습니다 .cfc/cfm을 사용하여 사이트의 전역 파일을 덮어 씁니다. 동적으로 geerated js/css가 최상의 옵션이라고 생각한 상황에 처했을 때.
정말 필요한 경우 OP 및 릴레이 변수에 표시되는대로 클라이언트 측에 할 수 있습니다. 또는 두 개의 "응용 프로그램"을 동일하게 이름을 지정할 수 있으며 데이터 공유를 매우 쉽게하는 반면, 공유하는 항목을주의 깊게 살펴보고 하위 응용 프로그램을 적절히 보호해야합니다.
그렇습니다. 다른 사람들이 제안한 것처럼, #SerializeJSON()#
은 서버 측 변수/객체를 클라이언트 측에 복사하는 현대적인 방법입니다. 예컨대
..
<cfset CFStruct = {big = "little", red = "blue", subArray = ["A","B","C","D"]} />
<script>
<cfoutput>JSObj = #SerializeJSON(CFStruct)#;</cfoutput>
</script>
<!--- While I use shorthand to form the struct and subArray, that's only for speed,
structs, arrays, queries, etc formed in any fashion work just fine. --->
은 (하위 요소를 갖는다 A, B, C, D
) 요소와 big, red, subArray
JSObj
를 생성한다.
여전히 어떤 방법을 선택하든 (wddx
또는 SerializeJSON()
) 이러한 파일은 .js 파일에서 작동하지 않습니다.
서버에서 .js 파일을 구문 분석 할 수 있도록 허용하는 다른 옵션이 있지만 여기에는 가치가있는 것보다 훨씬 많은 고통이 있습니다. 일반 js 파일을 사용하는 경우가 많이 있습니다. 파일이 <script>
및 <link>
같은 클라이언트 측 태그를 통해 호출
참고 완전히 별도의 요청 있습니다. 그들은 url, form, request, variables
범위를 공유하지 않습니다. 그러나 두 응용 프로그램이 동일한 이름을 가진 경우 cookies
과 client
및 session
범위를 공유 할 수 있습니다.
마지막으로 확장명에 관계없이 html 태그를 통해 호출되는 외부 콘텐츠에 대한 멋진 점은 일반적으로 기본적으로 캐시된다는 것입니다. 대역폭과 페이지를 빠르게로드하는 경우에도 비 캐시 된 사본을 일관되게로드하려는 시나리오가 있기 전까지는이 방법이 유용합니다.
외부 파일에 고정시키고 싶은 것을 동적으로 생성해야한다고 생각하면 몇 가지 방법이 있습니다.
- 헤더에 no-cache를 설정할 수 있습니다 (CF 또는 Htaccess가이 작업을 수행 할 수 있음).
- 스크립트 호출의 쿼리 문자열에 임의의 숫자를 제공 할 수 있습니다.
<script src="/livemedia/js_main.cfm?randomizer=#randrange(1,1000000)#"></script>
- 아마도 파일은 모든 사용자에게 매번 새로 고칠 필요가 없으며, 아마도 각 사용자가 다른 사본을 볼 필요가있을 수도 있습니다. 여러 사용자가 같은 컴퓨터에서 로그인 할 수 있기 때문에 여전히 쿼리 문자열을 첨부합니다. 그러나 사용자별로 다를 수 있습니다.
<script src="/livemedia/js_main.cfm?#session.username#"></script>
은 페이지가 컴파일하는 방법을 재검토하고 페이지에서 라이브 인라인 할 필요가 데이터를 저장합니다.
자바 스크립트 파일의 쿼리 문자열에 뭔가를 첨부하는 경우 매번 재생성 할 필요가없는 별도의 파일로 파일의 정적 내용을 이동해야합니다. 1에는 동적 컨텐츠가 들어 있으므로 각 페이지 요청마다 15 개의 자바 스크립트 기능을 다시로드 할 필요가 없습니다.
WDDX –