当前位置: 首页 > 面试题库 >

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

赵飞语
2023-03-14
问题内容

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

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

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


问题答案:

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

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

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



 类似资料:
  • 问题内容: 我尝试在我的网站中实施AJAX。单击div changepass的内容时,则应加载changepass.template.php。这是我为此使用的代码。 我的问题是在页面changepass.template.php完全加载时如何显示GIF动画(loading.gif)。请给我一些代码提示。 问题答案: 有很多方法可以做到这一点。一种简单的方法: JS: 詹姆斯·怀斯曼 ( James

  • 问题内容: 我已经通过Ajax调用通过隐藏的iframe读取了Facebook加载页面的地方…这是真的吗? 问题答案: Facebook使用他们称为BigPipe的东西,它将页面分成一堆小小的“小页面”,这些小页面分别通过AJAX加载。 在下图中,浅蓝色突出显示的区域是单个的小页面。

  • 问题内容: 您好朋友,我想在特定的div加载数据之前向Ajax加载器显示,但问题是数据在同一页面上动态传输,但是我的脚本从另一个文件调用数据, 请参见下面的代码 脚本 的HTML 它的工作正常,但我想在同一页面中加载数据,请帮助我 提前致谢 .... 编辑 我想说明之前加载数据装载到 问题答案: 您可以尝试使用以下html- 和脚本-

  • 问题内容: 我的网站上有一个版块,在进行一些密集的通话时加载速度很慢。 知道如何div在页面准备时显示类似于“加载”的内容,然后在一切准备就绪时消失吗? 问题答案: 我需要这个,经过一番研究,我想到了这个(需要jQuery): 首先,在标签之后添加以下代码: 然后将div和图片的样式类添加到CSS: 然后,将此JavaScript添加到您的页面中(当然,最好在页面结尾处,在结束

  • 问题内容: 示例:转到Facebook墙,滚动页面的末尾,Facebook将 异步 加载更多墙帖。或者,只需单击墙上的帖子中的图片即可。图像对话框(带有注释和较大图像)也将 异步 加载。(您可以使用firebug查看GET请求)。 但是通过查看和Firefox标签,您会看到加载指示器,就像发生回发时一样。 我知道可以通过使用an 并更改其src 来实现。就像iGoogle一样。但是我不确定Face

  • 问题内容: 这是我以前在这里发表的上一篇文章的扩展,我无法上班,但是更新Selenium后现在出现新错误。 我正在使用Python 3.5,Windows 8.1,Selenium 3.0.1 我知道代码可以工作,因为它可以在我的MAC上工作,但是当我将代码转移到如上所述的工作计算机上时,发生的唯一事情是浏览器将打开,但不会加载任何内容,甚至不会加载主页。 从搜索中可以找到的所有内容中,我下载了g