변경시 JavaScript 파일 "새로 고침"

자비에르 알바레즈

내 JSP 프로젝트에 다음 스크립트가 포함 된 .jsp 파일이 있습니다.

<script type="text/javascript">
    $(window).load(function() {
        ...
        options.items = items;
        ...
    });
</script>

변수 항목 은 동일한 .jsp 파일에도 포함 된 다른 JavaScript 스크립트에 포함됩니다.

<script type="text/javascript" src="<c:url value="/js/items.js"/>"></script>

items.js의 구조는 다음과 같습니다.

var items = [{...}, {...}, {...}];

이제이 .jsp에 대해 doGet구현하는 서블릿 은 데이터베이스에서 일부 데이터를 수집하고 (이 데이터는 매번 다를 수 있음)이를 사용하여 위에서 언급 한 items.js 파일을 디스크에 기록합니다.

문제는 서버 (tomcat7)가 items.js가 다시 시작될 때까지 변경된 것을 보지 못하지만 수집 할 데이터가 항상 같지는 않기 때문에 매번 해당 파일을 생성해야한다는 것입니다. 그래서 서버를 다시 시작하지 않고도 항목에 대한 데이터와 함께 언급 한 첫 번째 JavaScript 함수를 올바르게 제공하는 방법을 알고 싶습니다 . 물론 가능 하면 스크립틀릿 사용을 피하고 싶습니다 .

이 메시지의 시작 부분에 포함 된 JavaScript 부분은 데이터 시각화에 필요한 JavaScript 라이브러리를 사용하고 있기 때문에 삭제할 수 없습니다.

도움을 주셔서 미리 감사드립니다.

자비에르 알바레즈

이 문제를 어떻게 해결했는지 설명하기 위해 내 질문에 답하고 있습니다.

나는 Sacho와 Christopher Schultz가 제안한 것을 정확하게하지 않았지만 그들이 말한 것은 나에게 아이디어를 주었다.

첫째, 내 서블릿에서 원하는 데이터를 포함하는 StringBuffer를 구축했습니다. 처음에는 JSONArray를 사용하고 싶었지만 내 js 스크립트가 읽을 수 있도록 여러 변환을 사용하는 것을 의미합니다 (할 수는 있지만 단순히 표준 파서를 사용하는 것이 아니라 조금 더 복잡한 것입니다). 그런 다음이 StringBuffer를 요청 매개 변수에 추가했습니다. 이것이 모든 모습입니다.

protected void doGet(HttpServletRequest request,
                    HttpServletResponse response) {
    StringBuffer sb = new StringBuffer();
    // Fill the StringBuffer
    request.setAttribute("items", sb);
    request.getRequestDispatcher("/WEB-INF/myjsp.jsp").forward(
                            request, response);
}

마지막으로 다음과 같이 jsp 파일에서이 속성에 액세스했습니다.

options.items = <%= request.getAttribute("items") %>;

스크립틀릿을 피하고 싶었지만이 코드는 괜찮다고 생각하고 구현하기가 매우 간단합니다.

당신의 도움을 주셔서 감사합니다!

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

bashrc 파일을 편집 한 후 환경 변수 새로 고침

분류에서Dev

Firefox 및 Chrome에서 JavaScript 파일 만 강제 새로 고침

분류에서Dev

Ranger 파일 관리자의 캐시 새로 고침

분류에서Dev

페이지 새로 고침없이 JS 파일 다시로드

분류에서Dev

새로 고침하지 않고 동일한 페이지를 새로 고침 하시겠습니까?

분류에서Dev

버튼 클릭시 페이지 일부 새로 고침, 새 URL에서 전체 페이지 새로 고침

분류에서Dev

로드 된 텍스트 파일 변경시 C # 목록 상자 새로 고침

분류에서Dev

Div를 표시 한 다음 Javascript 새로 고침 유지

분류에서Dev

두 번째 새로 고침시 JavaScript 출력

분류에서Dev

Jquery / Javascript 새로 고침 Click ()

분류에서Dev

일부 조건으로 변수 새로 고침

분류에서Dev

Google 어스에서 KML 스타일 시트 새로 고침

분류에서Dev

Yodlee 매일 새로 고침

분류에서Dev

Java 변수 새로 고침

분류에서Dev

파일 시스템에 존재하지 않는 폴더 새로 고침

분류에서Dev

레일에서 URL 매개 변수가 변경되면 URL 새로 고침

분류에서Dev

페이지 새로 고침으로 jQuery 변경 html 요소 스타일

분류에서Dev

변경시 Iframe 새로 고침

분류에서Dev

Datacontext 변경시 Datagrid 새로 고침

분류에서Dev

iframe 새로 고침시 URL 변경

분류에서Dev

-FS 옵션으로 zip 파일을 "새로 고침"하면 파일의 수정 시간이 변경됩니까?

분류에서Dev

파일 변경시 자동 새로 고침 기능이있는 이미지 뷰어?

분류에서Dev

파일 변경시 자동 새로 고침 기능이있는 이미지 뷰어?

분류에서Dev

GTK 버튼 스타일 / CSS 수정 및 즉시 업데이트 / 새로 고침

분류에서Dev

보고서 ssrs에 대한 캐시 새로 고침 일정 설정

분류에서Dev

HTTP를 통해 Symfony 캐시, 자산, 스타일 새로 고침 트리거

분류에서Dev

새로 고침 후 반짝이는 슬라이더 스타일이 무시 됨

분류에서Dev

$ 범위 변경 새로 고침

분류에서Dev

$ scope 변경 후 각도 새로 고침

Related 관련 기사

  1. 1

    bashrc 파일을 편집 한 후 환경 변수 새로 고침

  2. 2

    Firefox 및 Chrome에서 JavaScript 파일 만 강제 새로 고침

  3. 3

    Ranger 파일 관리자의 캐시 새로 고침

  4. 4

    페이지 새로 고침없이 JS 파일 다시로드

  5. 5

    새로 고침하지 않고 동일한 페이지를 새로 고침 하시겠습니까?

  6. 6

    버튼 클릭시 페이지 일부 새로 고침, 새 URL에서 전체 페이지 새로 고침

  7. 7

    로드 된 텍스트 파일 변경시 C # 목록 상자 새로 고침

  8. 8

    Div를 표시 한 다음 Javascript 새로 고침 유지

  9. 9

    두 번째 새로 고침시 JavaScript 출력

  10. 10

    Jquery / Javascript 새로 고침 Click ()

  11. 11

    일부 조건으로 변수 새로 고침

  12. 12

    Google 어스에서 KML 스타일 시트 새로 고침

  13. 13

    Yodlee 매일 새로 고침

  14. 14

    Java 변수 새로 고침

  15. 15

    파일 시스템에 존재하지 않는 폴더 새로 고침

  16. 16

    레일에서 URL 매개 변수가 변경되면 URL 새로 고침

  17. 17

    페이지 새로 고침으로 jQuery 변경 html 요소 스타일

  18. 18

    변경시 Iframe 새로 고침

  19. 19

    Datacontext 변경시 Datagrid 새로 고침

  20. 20

    iframe 새로 고침시 URL 변경

  21. 21

    -FS 옵션으로 zip 파일을 "새로 고침"하면 파일의 수정 시간이 변경됩니까?

  22. 22

    파일 변경시 자동 새로 고침 기능이있는 이미지 뷰어?

  23. 23

    파일 변경시 자동 새로 고침 기능이있는 이미지 뷰어?

  24. 24

    GTK 버튼 스타일 / CSS 수정 및 즉시 업데이트 / 새로 고침

  25. 25

    보고서 ssrs에 대한 캐시 새로 고침 일정 설정

  26. 26

    HTTP를 통해 Symfony 캐시, 자산, 스타일 새로 고침 트리거

  27. 27

    새로 고침 후 반짝이는 슬라이더 스타일이 무시 됨

  28. 28

    $ 범위 변경 새로 고침

  29. 29

    $ scope 변경 후 각도 새로 고침

뜨겁다태그

보관