1

我在头部有这个index.php

<link rel="apple-touch-startup-image" href="images/screenLD.png" media="(device-width:320px)" /><!--iPod/iPhone Portrait LD 320x460-->
<link rel="apple-touch-startup-image" href="images/screenHD.png" media="(device-width:320px)and(-webkit-device-pixel-ratio:2)" /><!--iPod/iPhone Portrait HD 640x920-->
<link rel="apple-touch-startup-image" href="images/screenPortraitLD.png" media="(device-width:768px)and(orientation:portrait)" /><!--iPad Portrait LD 768x1004-->
<link rel="apple-touch-startup-image" href="images/screenLandscapeLD.png" media="(device-width:768px)and(orientation:landscape)" /><!--iPad Landscape LD 748x1024-->
<link rel="apple-touch-startup-image" href="images/screenPortraitHD.png" media="(device-width:1536px)and(orientation:portrait)and(-webkit-device-pixel-ratio:2)" /><!--iPad Portrait HD 1536x2008-->
<link rel="apple-touch-startup-image" href="images/screenLandscapeHD.png" media="(device-width:1536px)and(orientation:landscape)and(-webkit-device-pixel-ratio:2)" /><!--iPad Landscape HD 1496x2048-->

这在cache.manifest

CACHE MANIFEST

index.php

images/screenLD.png
images/screenHD.png
images/screenPortraitLD.png
images/screenLandscapeLD.png
images/screenPortraitHD.png
images/screenLandscapeHD.png

但是我们很容易理解,一个 iPhone 用户需要缓存另外 5 张无用的大图。

我怎样才能让他只缓存他需要的图像?


顺便说一句,对于那些想要在每个苹果设备上运行的闪屏代码的人来说,我的是完美的。

4

2 回答 2

2

使用 python/php 脚本,检查设备的 User-Agent 字符串。cache.manifest然后为特定设备提供不同版本的缓存列表。如果 User-Agent 字符串格式错误或未知,则提供上面包含所有内容的字符串。

例子:

  1. 创建一个脚本,例如:cache_manifest.php
  2. 清理 $_SERVER['HTTP_USER_AGENT']
  3. 从用户代理字符串中查找设备名称。
  4. 输出(通过“ echo”)给定设备的 LD/HD 文件。用户代理字符串不允许您准确确定设备是否具有视网膜显示器。
  5. RewriteRule通过from重定向流量/cache.manifestcache_manifest.php

Htaccess文件看起来像:

RewriteEngine On
RewriteRule ^cache\.manifest$ /cache_manifest.php [L]

iPhone 用户代理字符串如下所示:

Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_3 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5

iPad 用户代理字符串如下所示:

Mozilla/5.0 (iPad; U; CPU OS 4_3_3 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5
于 2012-07-25T19:10:49.967 回答
0

您实际上不需要缓存 apple-touch-startup-image 标签中使用的图像。设备将在第一次运行时下载所需的图像(在缓存任何内容之前)。当它们被缓存时,它们就不再需要了。

于 2012-08-13T04:48:00.100 回答