如果我打开浏览器并转到http://example.com/myapp
,浏览器将从Web服务器获取HTML文件,解析HTML,然后将其加载为window.document
。
但我也可以像下面的jQuery示例一样进行AJAX查询:
$.ajax({
url: "http://example.com/myapp",
success: onSuccess
});
在这种情况下,浏览器会针对相同的HTML内容执行异步请求,但是它不一定会将该内容加载到window.document
中。然后代码需要明确使HTML对用户可见。
我的问题是:这两种类型的HTTP GET之间的区别是什么,它们都从Web服务器请求相同的文件。为什么前者会导致用户看到新的网页,而后者只是获取HTML并为JavaScript开发人员提供选项来显示或不显示?
答案 0 :(得分:1)
所涉及的HTTP 请求之间没有太大的意义差异。重要的是浏览器对响应的处理方式。这只是网络浏览器的功能;它只是一个软件,它可以决定对HTTP请求的响应做任何想做的事情。
请注意,浏览器知道如何启动不同的HTTP事务。因此,它只是以一种从可观察行为中隐含明显的方式内部跟踪差异。如果某些JavaScript代码启动了AJAX HTTP请求,则可以确信响应将通过状态更改事件传递给它,并且浏览器不会自发决定更新页面。
浏览器内部管理一组并发HTTP请求的确切方式几乎就是内部架构细节。