首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >客户端头部信息

客户端头部信息
EN

Stack Overflow用户
提问于 2012-03-29 19:00:55
回答 3查看 179关注 0票数 0

我有一个建立在PHP上的web应用程序,它(进行一些处理和)显示外部服务器上托管的图像。其中一些图片(例如,来自Flickr)在被删除时,会留下一个指向"Missing Image“gif或其他类似内容的重定向。

通过对每个图像使用php中的get_headers()函数,我能够在服务器端检查图像是否被删除(例如,通过检查Flickr图像上的Content-Type是否是image/gif而不是image/jpg )。

问题是,每个页面平均返回20-100张图片(有时甚至更多),而get_headers()平均需要0.3-0.5s才能返回每张图片,从而使用户的等待时间太长。

我想知道这项检查是否可以在客户端使用javascript完成。用户将等待图像加载(与任何页面一样),我将检查图像是否有效,并在缺少的图像上将显示属性设置为none。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-03-29 19:11:52

您可以使用curl_multi_exec()一次检查多个URL。如果使用以下cURL选项:

代码语言:javascript
复制
CURLOPT_FOLLOWLOCATION = FALSE
CURLOPT_NOBODY = TRUE
CURLOPT_HEADER = TRUE

...this将阻止以下重定向。然后,您可以使用此信息(无论响应是否是重定向,请参阅curl_get_info()中的CURLINFO_HTTP_CODE )来确定该文件是否存在。通过使用curl_multi_exec(),您将一次执行多个检查,这将极大地减少页面加载时间。

票数 0
EN

Stack Overflow用户

发布于 2012-03-29 19:07:03

您可以使用此方法来确定镜像类型,但它可能会给您的服务器带来一些额外的流量。

代码语言:javascript
复制
var request;
    request = $.ajax({
              type: "HEAD",
              url: 'your image url',
              success: function () {
              alert("Size is " + request.getResponseHeader("Content-Length"));
              alert("Type is " + request.getResponseHeader("Content-Type"));
              }
           });

点击此处:Can I get an image's file size and mime-type via JavaScript (FireFox/Gecko/Mozilla only)

票数 0
EN

Stack Overflow用户

发布于 2012-03-29 19:07:16

是的,您可以使用javascript,例如Ajax来向PHP程序发出请求。

但是,与其使用get_headers (),不如使用这个特性:http://es.php.net/manual/es/function.file-exists.php#85246

致以问候!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9924045

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档