2012-09-10 77 views
2

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

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

一旦加载页面,它会调用ajaxFunction,最终将取代使用id =“foo”的div标签的内容(顺便说一句,它可以递归调用以及)。但是您可以从浏览器中查看的页面源代码仍将包含此代码段。有什么方法可以在不重新加载页面的情况下刷新页面源代码?

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

回答

1

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

3

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

+1

我喜欢这个答案。学习使用FF或Chrome开发者工具对于查看动态源代码至关重要。 – Hacknightly

+0

这个问题不是关于开发人员工具,我非常了解,但关于不同的主题。 – Valentin

相关问题