【发布时间】:2017-01-03 01:15:42
【问题描述】:
是否可以更改由jsp 加载的页面源内容通过 Ajax 包含在主要的jsp 中?
如果不是,是否可以单独重新加载页面的该部分(加载某些内容的jsp)并更改页面源中的部分内容?
详情:
我有一个名为 page 的变量,该变量从 Java 控制器获取其内容作为 <String key,map<String key,String value> 的映射,然后它执行多个操作并将不同的 params 添加到映射,将其转换为 JSON 并发送它到jsp。
最近我想做一些不同的事情,我想在名为contentOfThePage 的'page' 变量中添加一个参数,该变量在文档完全加载时动态获取其内容,之后我执行Ajax 请求控制器添加新参数,但问题是除非我重新加载页面或导航到另一个页面,否则新更改永远不会进入页面源,这会导致很多麻烦,因为页面源可能包含页面上一页的内容!
知道如何避免这种情况并直接更改页面源(非 DOM) 吗?
请记住,内容是动态添加的,但我需要一种方法来更改页面源,而不影响性能,方法是在 ajax 请求成功后请求重新加载
【问题讨论】:
-
听起来您正在寻找 DOM 历史 API 来使用
pushState处理当前页面状态:developer.mozilla.org/en-US/docs/Web/API/History_API 因为您无法更改页面源客户端。页面源是服务器返回的内容 -
在页面加载完成后,您似乎正在尝试添加更多 javascript。但是根据我的经验,页面将在完全加载后使用缓存,因此除非特别告知(例如 onclick 事件),否则不会考虑运行任何 javascript。如果您阻止页面缓存,则可以更改此设置。 (请注意,我的经验来自纯 html-js(纯 javascript ajax),由于您使用的东西略有不同,您的情况可能与我的不同。
-
@A.Wolff 这就是问题所在,我需要一种在不影响性能的情况下从服务器重新请求 HTML 的方法,或者至少保持响应直到 AJAX 发挥作用
-
您能在问题中分享您的代码吗?因为您想要的东西被许多编码人员广泛使用,并且完全有可能做到这一点。但是您的问题仍然有很多问题。
-
读了几分钟后我不明白这个问题。如果你改进它,你可能会得到更多的答案。 “页面源js变量”是什么意思?问题是句子末尾缺少点。这很难阅读并导致歧义。最后但同样重要的是,代码的重要部分可能有助于理解。
标签: javascript java jquery ajax jsp