我有一个网页,其中页面的一部分是通过 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/