浏览器中302图片重定向速度较慢

6

我使用 WAMP 堆栈,并为 demo.html 编写了以下一行代码:

<img src="http://localhost/redirect/demo.php"></img>

demo.php的代码如下:

<?php
header("Location: http://localhost/redirect/blah");
exit();
?>

代码可以正常运行,但在内容下载期间响应时间非常长。 使用IMG标签的响应时间 当我将demo.html从使用标签改为使用脚本标签时,在响应时间方面就没有问题了。
<script src="http://localhost/redirect/demo.php"></script>

Response time using SCRIPT tag

不确定为什么会发生在IMG标签上。有人能解释一下这是为什么,如何避免呢?是否有其他方法可以通过302加载IMG而不需要JavaScript解决方案。

注意 - 相信这不是PHP / WAMP问题,因为当我直接调用http://localhost/redirect/demo.php时,响应时间未受影响。相信这与浏览器、它的渲染、它的加载事件有关。


现代浏览器在脚本方面更加智能化,它们可以同时加载多个脚本。同时,HTML会按照自上而下的方式加载,img标签会在图像获取后显示。@Vivek说得对,脚本是同步加载的,而图像则是异步排队加载的。 - sarath
3个回答

2
如果我没弄错的话,脚本是同步加载的,而图片是异步队列加载的。
所以我的理解是如果你使用 script 标签,浏览器会等待加载发送 302 的 http://localhost/redirect/demo.php,这迫使浏览器在加载其他任何内容之前执行 http://localhost/redirect/blah
相反,如果您使用 img 标签,在浏览器执行 http://localhost/redirect/demo.php 的同时继续加载页面的其余部分。 当 demo.php 返回 302 时,http://localhost/redirect/blah 将被添加到要加载的 URL 队列中。 因此,加载图像的总时间更长。
不确定是否可以避免这种情况。 可能,在 demo.php 上启用缓存可以帮助后续请求。

0

0

根据您的图像重定向使用情况,您可以查看URL重写

我不确定这是一个好的解决方案,因为您的示例代码缺乏上下文。

您还可以查看这个问题,它可以为您提供额外的信息:HTTP重定向图像是否可以?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接