重新加载AJAX请求的页面源

时间:2012-09-10 15:57:51

标签: javascript html ajax reload

我发现如果我在页面上使用AJAX调用,页面源保持不变。这可能会导致问题,例如如果用户在浏览器中使用向前/向后操作,当它返回到页面浏览器时将具有/读取原始HTML代码而不是具有AJAX内容的HTML代码。例如,假设您使用

构建页面
<div id="foo">
<script type="text/javascript">
setTimeout('ajaxFunction', ...);
</script>
</div>

一旦你加载页面,它将调用ajaxFunction,最终将用id =“foo”替换div标签的内容(顺便说一下,它也可以是递归调用)。但是,您可以从浏览器中查看的页面源仍将包含此代码段。有没有办法刷新页面源而无需重新加载页面?

我知道我可以在我的AJAX代码中添加页面重新加载,但我想避免它而不是打扰最终用户。

3 个答案:

答案 0 :(得分:3)

浏览器向您显示它在HTTP响应中从服务器收到的内容。 DOM中的所有动态更改都没有反映在那里。 因此,您可以在FF中使用firebug或在Chrome中使用开发人员工具来跟踪动态更改。

答案 1 :(得分:1)

如果您正在通过右键单击获取“查看源”选项 - 某些浏览器(如果不是全部)正在执行另一个获取HTML的请求。开发人员工具/ Firebug将向您显示更新的HTML,但显示在下一个/前向导航后,初始HTML(未使用JS / AJAX进行更改)显示。我认为chrome也会缓存动态变化,但只是检查了它并显示了初始页面。假设没有办法改变这种行为。对我来说,唯一的方法就是在document.onload中调用ajaxFunction,如果你想确保向用户显示最新的信息。

答案 2 :(得分:0)

如果您绝对需要获取已加载的网页来源,而无需重新加载或重新提交,我建议此Chrome扩展程序在大多数情况下运行良好。

https://chrome.google.com/webstore/detail/quick-source-viewer/cfmcghennfbpmhemnnfjhkdmnbidpanb