我发现如果我在页面上使用AJAX调用,则页面源保持不变.这可能会导致问题,例如如果用户在浏览器中使用前进/后退操作,则当它返回页面时,浏览器将具有/读取原始HTML代码,而不具有AJAX内容.例如,假设您使用
<div id="foo">
<script type="text/javascript">
setTimeout('ajaxFunction', ...);
</script>
</div>
一旦加载页面,它将调用ajaxFunction,最终将用id =“ foo”替换div标签的内容(顺便说一句,它也可以是递归调用).但是您可以从浏览器查看的页面源仍将包含此片段.有什么方法可以刷新页面源代码而无需重新加载页面?
我知道我可以在AJAX代码中添加页面重载,但是我想避免这种情况,并且不会打扰最终用户.
解决方法:
如果您想通过右键单击获得“查看源代码”选项,则某些浏览器(如果不是全部的话)正在另外请求获取HTML.开发人员工具/ Firebug将向您显示更新的HTML,但是在下一次/向前导航后,似乎显示了初始HTML(未使用JS / AJAX完成更改).我以为chrome也可以缓存动态更改,但只是选中了它并显示了初始页面.假设没有办法更改此行为.就我而言,这里唯一的方法是如果要确保向用户显示最新信息,则在document.onload中调用ajaxFunction.