小编典典

Facebook如何在AJAX页面加载期间显示浏览器加载进度?

ajax

为了使IM Client始终保持登录状态,Facebook通过在将页面插入文档之前使用AJAX加载页面来避免整个页面加载。

但是,在Facebook AJAX请求期间,浏览器似乎正在加载。重新加载按钮变为X,浏览器中内置的进度指示器指示正在加载/正在等待等)

我已经能够成功实现基于AJAX的导航,但是我的浏览器没有显示任何加载迹象(由于请求是异步的),Facebook如何做到这一点?


阅读 283

收藏
2020-07-26

共1个答案

小编典典

当文档中正在加载的元素时,浏览器将显示加载状态。Ajax请求完全来自JavaScript。该文档不会受到影响,因此不会触发加载状态。

另一方面,Facebook的大多数请求都是通过<script>在文档中插入标签,指向包含所需数据的JavaScript文件来进行的。(基本上是JSONP,除非它们使用不同的格式。)浏览器将显示其加载状态,因为<script>标签是文档中的未加载元素。

如果您不小心,此技术/
JSONP可能会使您的站点面临安全风险,因为允许跨站点请求。Facebook通过为每个资源生成随机URL来处理此问题,该URL在初始页面加载时发送到浏览器。

2020-07-26