2012-01-10 2 views
0

페이지의 일부가 AJAX, 을 통해로드되는 웹 페이지가 있지만 자바 스크립트가 활성화되어 있지 않으면 작동 시키려고했습니다.JSP에서 자바 스크립트가 활성화/비활성화되었는지 확인

그래서, 나는

fetchCitiesAndDisplay은()

가 콘텐츠를 얻을 것이다 자바 스크립트 방법이다 (도시에있는 코드를 실행

<script> 
    fetchCitiesAndDisplay(); 
</script> 
<noscript> 
    <% 
     out.print(Cities.getHtml()); 
    %> 
</noscript> 

로 코드를 작성 .java) 표시하고 표시합니다. Cities.java

는 데이터베이스에서 도시를 수집하고 표시 할 HTML 콘텐츠를 생성하는 자바 클래스입니다.

JavaScript가 꺼지면 모든 것이 잘 작동합니다. 아약스 호출이 실행되지 않으며 Cities.getHtml() 만 호출됩니다.

JavaScript가 활성화되면 Ajax 호출도 실행되고 Cities.getHtml()도 호출됩니다 .. 심지어 태그로 인해 디스플레이가 올바르게 보이지만 Cities.java는 동일한 호출에 대해 두 번 호출합니다 데이터, 그리고 그것은 많은 시간을 먹는다 ...

어떻게 해결할 수 있습니까?

+0

http://stackoverflow.com/questions/121203/how-to-detect-if-javascript-is-disabled - 도움이되는지 확인하십시오. –

+0

아니 srikanth, 내 문제를 해결하지 않습니다 ... – amithgc

답변

1

<noscript>의 작동 방식을 이해하지 못했는지 궁금합니다. 그것은 서버 측 템플릿에서 작동하지 않으므로 서버 측 로직을 넣어두면 자바 스크립트가 궁극적으로 브라우저에서 활성화되었는지 여부가 항상 실행됩니다.

그러므로 내게는 <noscript> 안에있는 HTML이 자바 스크립트가 켜져 있거나 꺼져 있는지 여부에 관계없이 항상 생성되기 때문에 이것은별로 의미가 없습니다. 그것은 항상 페이지에있을 것입니다. 그래서, 항상 페이지에 있다면, 왜 자바 스크립트가 켜져있을 때 아약스를 통해 가져 오는거야?

+0

내 기본 목표는 AJAX를 통해 웹 페이지를 더 빨리 렌더링하도록 가져옵니다 ...하지만 JS가 비활성화 된 경우에만 직접 가져 와서 표시하려고합니다. call out.print (Cities.getHtml()); – amithgc

+0

당신이 가지고있는 것은 그렇게하지 않는 것입니다. Cities.getHTML()에서 서버 측 코드를 호출하는 것은 항상 있습니다. javascript가 하나 일 때 view/source로 생성 된 페이지를보고'

+0

0

난 @의 jfriend00, 동의 할 필요는 없습니다 가능한 자바 스크립트 당신은 페이지가 당신이 그것을 확인할 수 있습니다 제출 일부 값에 숨겨진 변수를 설정하기 위해 자바 스크립트를 사용하여 1 페이지

를 사용하여 활성화 된 경우 확인하려면 javascript가 활성화되었는지 여부를 확인합니다. 그러나 이것은 1 요청/응답주기를 필요로합니다. 의도 한 페이지로 요청을 전달하는 임시 페이지를 가질 수 있습니다 (위에서 설명한 숨겨진 변수 사용).

0

JavaScript 코드가 페이지로드시 작은 html/image/etc 스 니펫을로드하지 않도록하십시오. javascript가 활성화되어 있으면 해당 파일이 요청되었음을 알 수 있습니다. 사용 중지 된 경우 해당 파일에 대한 요청이 없습니다.

관련 문제