java - 查找 JSP 中是否启用/禁用 JavaScript

标签 java javascript html jsp noscript

我有一个网页,其中页面的一部分是通过 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 也会对相同的数据调用两次,而且这会占用很多时间......

如何解决这个问题?

最佳答案

我想知道您是否不明白 <noscript>作品。它不会在您的服务器端模板中发挥作用,因此无论浏览器中是否最终启用 JavaScript,您放入其中的任何服务器端逻辑都将始终执行。

因此,这对我来说没有多大意义,因为 <noscript> 中的 HTML无论 javascript 打开还是关闭,总是会生成。它将始终在页面中。那么,如果它总是在页面中,那么为什么在 javascript 开启时通过 ajax 获取它呢?

关于java - 查找 JSP 中是否启用/禁用 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8797622/

相关文章:

html - 将 CSS 链接到 HTML 文件 : Path specification

java - 随机整数函数

java - 在类中使用数组

javascript - 点击后如何取消触发

javascript - 我的 JavaScript 代码有什么问题?

php - php 脚本的 html 中的多行文本框

java - 如何以网络模式启动GWT?

java - 使用 Activity 对象和 BLOB

javascript - 如何测试具有特定名称的组件是否已在 Composition API (Vue 3) 中注册

java - 在 thymeleaf 中包含 JavaScript 变量