如何阻止HTML在JSP页面中使用Javascript进行渲染
How can I stop HTML from rendering using Javascript in a JSP page?
我们的想法是,如果用户从中国访问我们的网站,我们必须阻止某些资产以提高我们的网站速度。(例如,Facebook资源。我甚至需要阻止它们加载,因为它们总是被阻止)
需要注意的是,我必须在JavaScript中执行此操作(更新:请参阅底部的编辑),因为由于我们使用Akamai进行缓存,因此必须在客户端执行此操作。
考虑一下这个HTML和一些JSTL:
<div class="num1">
//some stuff like text and images
<div class="num2">
//a nested div with other stuff
<c:if test="${varIsAlwaysTrue eq false}">
<div class="num3">
</div>
</c:if>
</div>
</div>
我该如何使用一个JavaScript变量来放置类似IF语句的内容?(变量名为XY.isChina)
我真正能想到的是什么是scriptlet方法:(显然不是<%标记和Java代码)
<script>
if (XY.isChina === false) {
</script>
<div class="num1">
//some stuff like text and images
<div class="num2">
//a nested div with other stuff
<c:if test="${varIsAlwaysTrue eq false}">
<div class="num3">
</div>
</c:if>
</div>
</div>
<script>
}
</script>
我几乎肯定这不会奏效。
这里游戏的目的是IF语句中没有加载任何内容。在页面上打洞是可以接受的,但如果响应元素可以将其视为不存在(出于对齐目的),那就更好了。
有什么想法吗?
提前谢谢。
EDIT:我应该说我需要在客户端执行,而不是特别指定JavaScript。该变量已经在JavaScript中设置,但如果有其他客户端方法可以实现这一点,那也没关系但是,我不能使用像jQuery这样的库
换个角度看。如果XY.isChina == true
,为什么不隐藏这些部分,而不是在这个条件成立的情况下不加载它们呢?因为JSP甚至在执行Javascript之前就已经呈现了HTML。
<script>
if (XY.isChina === false) {
document.getElementById( "numxyz" ).style.display = 'none';
}
</script>
我需要阻止他们甚至试图加载
听起来像是想把圆圈弄平,因为
由于我们的缓存,它必须在客户端完成
因此,作为第一个(部分)结论,您必须接受要加载的相关部件。
剩下的问题是避免正确显示隐藏的内容(需要时间,对用户体验不利)。
因此,解决方案可以是最初隐藏这些部分,然后仅在必须显示的情况下显示它们。在您给定的示例中,如下所示:
HTML:
<div class="num1 block-for-china"> <!-- note the dedicated class here -->
//some stuff like text and images
<div class="num2">
//a nested div with other stuff
<c:if test="${varIsAlwaysTrue eq false}">
<div class="num3">
</div>
</c:if>
</div>
</div>
CSS:
.block-for-china {
display: none;
}
JS:
document.onload(function() {
if (!XY.isChina) { // <-- up to you how to test this condition...
var blockForChina = document.getElementsByClassName('block-for-china');
for (var index in blockForChina) {
blockForChina[index].style.display = 'inherit';
}
}
});
- Javascript html每点击一次就会更改url
- 通过javascript/html访问twitter共享iframe
- 使用鼠标悬停JavaScript/HTML显示文本
- JavaScript-HTML表单到JSON(空值)和格式
- 使用javascript html实时预览文本区域输入
- 如何每秒从一个变量中提取一定次数的javascript/html
- 使用变量值作为'名称标识符'javascript/html
- JavaScript HTML Onclick
- 非侵入性Javascript HTML注入
- AppendChild Form / Table [Javascript/Html/PHP]
- 按钮don't使用onClick-Javascript HTML重定向
- 在库(javascript/HTML)中将“name”替换为“id”
- 如何确定使用 javascript/html 单击了哪个对象/图像
- 新的javascript HTML元素不遵循css规则
- JavaScript/HTML 错误的解决方案
- 从图像URL javascript html保存图像文件
- javascript html使用webstorage保存表单
- Javascript+HTML中的日期选择器准备好了吗?(需要:DD、MM、YY的单独字段加上日历选择器)
- 谷歌地图/融合表Javascript HTML赢得't显示/可视化所有多边形数据(通过色标)
- JavaScript/HTML命令行小部件