是否可以通过 Ajax 更改页面源内容变量
Posted
技术标签:
【中文标题】是否可以通过 Ajax 更改页面源内容变量【英文标题】:Is it possible to make changes to a page source content variable through Ajax 【发布时间】: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变量”是什么意思?问题是句子末尾缺少点。这很难阅读并导致歧义。最后但同样重要的是,代码的重要部分可能有助于理解。
【参考方案1】:
首先你想更新一些页面加载后已经存在的数据
你已经有一个 json 所以我假设一个休息电话 你用ajax调用它
现在您添加了其他要更改的内容
是的,实际上可以做到
但不是现在的集合 我假设你有一个 jsp 并试图改变那个 jsp
非常适合您想要在面板中更改的任何内容,例如图表或其他任何内容 在面板顶部添加一个按钮,然后单击按钮 url 必须是其余调用,以便更新数据
我也遇到过类似的图表问题, 我需要图表来提供更新的数据而不刷新整个页面, 所以我把它放在一个面板里,写了一个为图形提供数据的休息控制器,并放了一个刷新按钮来调用这个休息控制器。这让我可以在不刷新页面其余部分的情况下更新图表
【讨论】:
以上是关于是否可以通过 Ajax 更改页面源内容变量的主要内容,如果未能解决你的问题,请参考以下文章