2012-02-16 3 views
-1

사이트의 각 클라이언트에는 자체 HTML 구성 요소가 있습니다. 일부는 3 개의 요소를 가질 수 있지만 다른 요소는 123을 가질 수 있습니다. 요소간에 유사성이 거의 없습니다. 그리고 각 요소는 다양한 요소를 조작하는 데 필요한 특정 코드가 필요합니다. 실제로 각 클라이언트는 사이트에서 수행 된 각 검색 또는 작업 후에 다른 JavaScript 파일을 필요로 할 수 있습니다.자바 스크립트 파일이 동적 일 수 있습니까? (로드 할 때 각 클라이언트마다 다릅니다)? 방법?

그렇다면 서버가 각 세션마다 맞춤식 자바 스크립트 파일을 어떻게 제공 할 수 있습니까?

I는 서버 측에서 파이썬/cherrypy/마코를 사용 ...

TIA

데니스

+0

아니요. 세계의 모든 문제들이 분류되고 박스 화 될 수 있다면 그것은 대단 할 것입니다. 그러나 현실은 세계에서 가장 큰 문제는 역동적으로 털이 있습니다. 불가능하다고 말해 주려고? 사실 파이썬과 MACKO로 문제를 해결할 수 있습니다. html 파일과 함께 JS 파일을 전달하는 방법을 알지 못합니다. – DKean

답변

1

를 사용하여 여러 개의 자바 스크립트 파일을 그냥 당신이 필요로하는 것들 ..

하는 경우를 포함한다 동적으로 생성되는 모든 자바 스크립트 파일이 필요합니다. inline JavaScript :

<html> 
<head> 
    <script> 
     some_client_specific_code(); 
    </script> 
</head> 
... 
+0

변형은 무한합니다! 두 요소의 교차점은 자바 스크립트를 즉시 수정해야합니다. 이것은 어려운 문제가 아니며 MAKO를 사용하여 달성 할 수 있습니다. 동적 HTML 파일을 사용하여 동적 JS 파일을 클라이언트에게 전달하는 방법을 알려주지 않습니다. – DKean

+0

@DennisKean - 아마도 '

2

나는 시스템의 특정 사용자에게 특정한 JavaScript 파일을 동적으로 생성한다는 생각을 진지하게 생각해야한다고 생각합니다. 처음에는 깔끔한 생각처럼 들릴지 모르겠지만, 수정 된 경우 간단하고 안정적이며 실행하기 쉬운 시스템이 될 수있는 근본적인 설계 결함을 지적했을 것입니다.

동적 자바 스크립트 생성은 동적 HTML 생성과 거의 비슷합니다. 동적 파트가있는 영역을 나타내는 JavaScript 및 마크 업 태그의 골격을 포함하는 템플릿 파일이 있습니다. 그런 다음 파일 요청에 응답 할 수있는 URL 처리기가 있어야합니다. 일반적으로 JavaScript 파일은 이미지 나 CSS와 같은 다른 정적 파일처럼 처리되지만 동적 HTML 파일의 핸들러처럼 취급합니다.

생성 한 HTML 파일에는 생성 된 JS 파일의 URL이 있어야합니다. 예를 들어 정수 사용자 ID를 사용한다고 가정 해 보겠습니다. 기본 페이지의 URL은 http://myapp.com/home/11234 일 수 있습니다. 여기서 11234는 특정 사용자의 ID입니다. 해당 페이지의 템플릿 안에 동적으로 생성 된 JavaScript 파일의 URL을 가리키는 href가있는 script 태그가 있어야합니다 (예 : http://myapp.com/js/11234).

마지막으로 동적 JavaScript 파일의 URL에는 처리기가 주어진 사용자에 맞게 파일을 만드는 데 필요한 모든 데이터를로드하는 데 사용할 수있는 Id 구성 요소가 있어야합니다.

이번에도이 기술은 권장하지 않습니다.

+0

고객은 서로 공통점이 없습니다. 그들의 요구는 페가수스 은하가 유창한 방법에서 멀리까지 다양합니다. 사실 나는 파이썬과 MAKO로이 문제를 매우 쉽게 해결할 수있다. 두 파일 (JS 및 HTML)을 동시에 클라이언트에 제출하는 방법을 모르겠습니다. 이것은 엄청난 어려움이 아닙니다. 나는 그 해결책을 모른다. – DKean

+0

나는 당신의 충고를 이해하고 솔루션이 클라이언트에 의존했다면 당신이 옳다. 그러나 동일한 클라이언트가 조치를 취하여 요구 사항을 변경 한 다음 새 요청에 맞게 다른 JS 파일을 요구할 수 있다고 언급 했어야합니다. 문제 자체가 초점이지 고객이나 사이트 목표는 아닙니다. 그걸 볼 수 있니? – DKean

+0

그건 그렇고, 아담, 나와 함께 생각해 줘서 고마워. Python/cherrypy/Mako가 HTML 파일과 마찬가지로 고유 한 JavaScript 파일을 전달할 수 있기를 희망했습니다. 모든 클라이언트는 DB의 데이터에 따라 사용자 정의 된 HTML을 얻을 수 있습니다. 왜 우리는 JS 파일로 동일한 작업을 수행 할 수 없습니까? – DKean

1

내가 이해 한 바로는 HTML과 JS 파일을 생성하는 프로세스가 동시에 생성 될만큼 중요합니다. HTML 파일을 보낸 후에 JS 파일을 재생성하는 것은 문제가 될 수 있습니다.

그런 경우 언제든지 JS 파일을 캐시하고 토큰을 생성하여 HTML 파일에서 다시 가져올 수 있습니다.

<html> 
<head> 
    <script type="text/javascript" charset="utf-8" src="/fetch/my/${token}"> 
</head> 
...

이것은 서버에 두 번째 요청을 재생합니다, 당신은 CherryPy을 가질 수 있습니다 (죄송합니다, 그것은 익숙하지 않은)를 호출하는 과정을 간단하게 올바른 HTTP 헤더와 $ {토큰}의 내용을 반환합니다. .. 디스크에서 파일을 삭제하십시오.

@Adam Crossland에서 제안한 JS를 다시 생성하는 대신이 방법을 사용할 수 있습니까?

+0

그런데 @Danosaure는 JS 코드가 HTML 헤더 또는 본문에 인코딩 될 때 가능합니다. 따라서 대부분의 사람들이 이것을 말하는 것은 아니지만 필자는 항상 Python과 MAKO를 사용하여 효과적으로 사용합니다. 그리고이 일을하는 데 문제가 보이지 않습니다. 나는이 문제에 대해 머리를 감싸는 것이 어렵다는 것을 이해하지만, 매우 유용하고 대단히 강력합니다. 따라서 HTML처럼 서버가 다른 클라이언트를 수용하기 위해 원하는 JS 파일을 즉각적으로 사용자 정의 할 수 있다면 멋지게 느껴질 것입니다. – DKean

+0

다른 사람들의 답을 추가하려고하고 '두 파일 (JS 및 HTML)을 동시에 클라이언트에 제출하는 방법을 모르겠다'는 부분을 돕기 위해 노력하고 있습니다 .' HTTP 요청이 단일 호출에서 두 개의 응답을 반환 할 가능성이 있다고 생각하지 않습니다. 이것은 내가하고 싶은대로 이해하는 것입니다. 서버는 다른 클라이언트를 수용 할 수 있지만 어떻게해야하는지 알려줄 필요가 있습니다. – Danosaure