是否可以通过 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 更改页面源内容变量的主要内容,如果未能解决你的问题,请参考以下文章

如何在不刷新页面的情况下更改路线和内容? (机器人友好)

检查用户登录的ajax页面是不是改变

使用 Ajax 实时更改数据库

基于noscript的“隐藏页面源”(更改页面)

AJAX改变页面内容

更改 url 并更新页面内容而无需重新加载