3

我有一个页面,通过一个名为的文件动态加载图像thumb.php

该文件采用大图像文件,制作缩略图并输出 jpg,如下所示:

<img src="thumb.php?width=100&height=100&cropratio=1:1&image=/photos/45_Jumps-059.jpg" />

我的服务器上有一个问题,当我达到大约 60 个请求(对所有图像请求 thumb.php 60 次以上)时,我从服务器返回的响应是:

Remote server closed the connection before sending response header

并且图像无法加载。

这是否像 apache 或 php 内存不足之类的?在它再次开始工作之前,它会使我的整个服务器停止大约一分钟。

4

1 回答 1

1

这个问题很可能是 Apache 中的最大连接限制。它已设置为服务器可以在同时连接过多时继续运行。它很容易配置,但您提到您在共享主机上,因此您不太可能更改它。

在您的场景中,我会通过在页面加载时加载一些图像请求来分散图像请求,然后使用 JavaScript 观察加载完成并添加更多图像。JQuery 示例(未经测试):

<img src="" data-src="thumb.php?width=100&height=100&cropratio=1:1&image=/photos/45_Jumps-059.jpg" />
<img src="" data-src="thumb.php?width=100&height=100&cropratio=1:1&image=/photos/46_Jumps-059.jpg" />
<img src="" data-src="thumb.php?width=100&height=100&cropratio=1:1&image=/photos/47_Jumps-059.jpg" />

<script>
    $("img[src='']").load(function() {
       var next = $("img[src='']:first");
       next.attr('src', next.data('src');
    });
    var first = $("img[src='']:first");
    first.attr('src', first.data('src');
</script>
于 2013-10-06T20:25:58.023 回答