我有一个一般性的问题:无论页面大小(外部元素如图像、CSS文件、JS文件等),通过Ajax加载数据是否完全比加载整个页面以获取数据更快?
@Spender是正确的,但主要原因在于您没有重新获取页面的图像、CSS、JS和任何其他资源。请求本身可能会更快,但最终呈现的效果不会。
实际上,AJAX总是更快的。不是请求本身;那大致相同。区别在于它只传输必要的最小量(如果写得好),不会重新启动整个页面(从CSS解析、渲染、构建整个DOM等),而且你可以在页面仍然可见的情况下在后台执行,这样你就可以做其他事情,比如动画或甚至提前更新,预测明显的结果。这对用户体验来说是一种福音。
但还有更多。
最重要的是顺序。当你加载一个页面时,标记首先到达,然后是脚本和样式,通常图像最后到达。只有在所有这些处理完成后,你的页面才会有真正的外观。现在当你使用AJAX改变(甚至整个)标记时,事情立即就位了,然后一些东西会因为你的浏览器意识到后果而发生变化。换句话说:页面重新加载在所有东西都完成后才会视觉上“完成”;AJAX更改立即显示出来。这就是它的真正威力。你已经拥有了所有的图片、所有的列表、所有的一切,而你只需要加载已更改的内容。
因此:是的,它快得多。