Найти, если JavaScript включен / отключен в JSP - PullRequest
0 голосов
/ 10 января 2012

У меня есть веб-страница, на которой часть страницы загружается через AJAX, но я также хотел, чтобы она работала, если JavaScript не включен.

, поэтому я написал код как

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

где

fetchCitiesAndDisplay ()

- это метод javaScript, который получает содержимое (выполняет код в Cities.java) и отображает его.

Cities.java

- это класс Java, который будет собирать города из базы данных и генерировать HTML-контент для отображения.

Когда JavaScript - этовыключено, все работает отлично .. так как вызов ajax не будет выполнен, и только Cities.getHtml () будет вызван один раз.

, но, когда JavaScript включен, вызов Ajax также выполняется и Cities.getHtml() также вызывается .. даже несмотря на то, что из-за тега дисплей выглядит правильно, Cities.java дважды получит вызов для одних и тех же данных и потребляет много времени ...

Какрешить это?

Ответы [ 3 ]

1 голос
/ 10 января 2012

Мне интересно, может быть, вы не понимаете, как работает <noscript>.Он не вступает в действие в вашем шаблоне на стороне сервера, поэтому независимо от того, какую серверную логику вы там указали, ВСЕГДА будет выполняться независимо от того, включен ли в конечном итоге JavaScript или нет в браузере.

Следовательно, это не делаетдля меня это большой смысл, потому что HTML внутри <noscript> всегда будет генерироваться независимо от того, включен JavaScript или нет.Это всегда будет на странице.Итак, если он всегда находится на странице, то зачем получать его через ajax, когда включен javascript?

0 голосов
/ 10 января 2012

Почему бы при загрузке страницы ваш код javascript не загружал крошечный фрагмент html / image / etc. Если JavaScript включен, вы можете увидеть, что файл был запрошен. Если он отключен, не будет запроса на этот файл.

0 голосов
/ 10 января 2012

Я должен согласиться с @ jfriend00, невозможно определить, включен ли javascript на 1 странице

Вы можете использовать javascript, чтобы установить скрытую переменную с некоторым значением, когда страница отправляется, вы можете проверить ее и определить, включен ли javascript или нет ... но для этого требуется 1 цикл запроса / ответа, возможно, вы можете иметь промежуточная страница, которая перенаправляет запрос на предполагаемую страницу (со скрытой переменной, о которой я говорил выше).

...