jQuery';s$.get函数是否创建不必要的HTTP请求?

jQuery';s$.get函数是否创建不必要的HTTP请求?,jquery,ajax,http,get,Jquery,Ajax,Http,Get,为了增加站点的加载时间,作为一个不错的补充,我决定使用jQuery函数$.get实现AJAX页面加载。 我很高兴地看到,正如我预期的那样,两个站点中相同的内容保持静态,而只加载了不同的部分 但是,现在我想知道:当$.get获取一个新页面时,该页面还包含脚本和样式表,但是当这些脚本和样式表与上一个页面相同时,浏览器是否仍然为这些元素发送新的HTTP请求?如果真是这样,那就有点破坏了这部电影的目的 谢谢 缓存对通过向现有页面添加元素引用的资源的工作方式与加载包含这些元素的新页面引用的资源的工作方式相

为了增加站点的加载时间,作为一个不错的补充,我决定使用jQuery函数$.get实现AJAX页面加载。

我很高兴地看到,正如我预期的那样,两个站点中相同的内容保持静态,而只加载了不同的部分

但是,现在我想知道:当$.get获取一个新页面时,该页面还包含脚本和样式表,但是当这些脚本和样式表与上一个页面相同时,浏览器是否仍然为这些元素发送新的HTTP请求?如果真是这样,那就有点破坏了这部电影的目的


谢谢

缓存对通过向现有页面添加元素引用的资源的工作方式与加载包含这些元素的新页面引用的资源的工作方式相同。所以这没什么区别


也就是说,如果您是通过Ajax加载整个页面(正如您提到的脚本和样式表所表明的那样),那么您就不会节省任何时间,因为您没有减少传输的数据量。如果你正在加载(相对而言)页面的一小部分,这只会产生影响。

插入HTML会删除脚本和链接标记。也就是说,如果您的AJAX响应是

<div>test</div>
<script src="...."></script>
测试
仅插入
div


如果您想确定,请打开Fiddler或Firebug,看看会发生什么。

浏览器应该从磁盘或内存缓存加载相同的资源,而不是通过网络加载,只要浏览器或页面或资源中的缓存设置不禁止这样做。它们将被再次解析并重新加载,只是不会通过网络检索。请确保您不会通过使用并返回到服务器端生成的页面来破坏书签、链接等。您的意思是什么?历史API到底做什么?按照链接,读取标记为资源的内容。但是如果用户还没有缓存呢?那会有什么不同吗?另外,你能给我一个很好的理由来解释为什么很多大型网站现在都使用AJAX页面加载功能吗?如果用户没有缓存,那么他们就不会重新加载内容(或者,无论你如何让他们进入新的“页面”,内容都会被重新加载)。