再问下,我的页面是php页面,用header函数输出头部信息并指定客户端缓存,有如下问题
我断开网络链接,再输入网页地址,发现打开的速度很慢,但打开hao123的速度挺快的!
我接上网络连接,再输入网页地址,发现打开的速度很快,
请问,按理说网页已经缓存到客户端了,应该打开的速度很快的呀!!可为什么很慢呢??
为什么hao123再断开网络链接的情况下,打开的速度仍然很快呢,难道是因为我的是php页面,他的是html页面
谢谢了!!

解决方案 »

  1.   

    function  adjustImg(ImgD)   
      { 
            var  image=new  Image();   
            image.src=ImgD.src;    //一下几行有点看不懂 
            if(image.width>760)     //如果image宽大于760
            {         
               ImgD.height=(image.height*760)/image.width;    // 这里好像不对,按image的宽高比*760,image默认宽高多说没说,可以alert看看
                ImgD.width=760;       //设置宽为760
             } else {     
                  ImgD.width=image.width;         
                 ImgD.height=image.height;     
        }     
      }
    ---------这个是调整某一img对象宽高,如果大于760,重新调整,否则,设为image的宽高,image对象的默认可能和浏览器有关
      

  2.   

    hao123可以实现,不知道他是怎么搞的! 
    ---------------------------------------------
    你可以打开一个hao123 的;输出图片的程序文件(如PHP输出的),看看文件头就知道了,用firebug
    可以删除缓存,重新打开那个图片页,看一下就知道了是输出缓存控制的问题,没有缓存,是你设的不对
      

  3.   

    非常抱歉我不知道如何输出hao123的文件头信息,firebug是什么意思,谢谢!
      

  4.   

    <?php
    $url = 'http://www.example.com';print_r(get_headers($url));print_r(get_headers($url, 1));
    ?> $url换成hao123的图片url看看
      

  5.   

    现在的客户端都会自动缓存,乱加header可能会有反效果
      

  6.   

    你是否设置了其他的缓存?Firebug是火狐浏览器的一个插件,你安装后在网络一栏可以详细的看到页面每个请求的header默认的话你的图片要是没做修改浏览器是会自动缓存的,
    !!!倒是你的  header('Last-Modified: '.gmdate('D, d M Y H:i:s',$time).' GMT'); 
    这句,指定了最后修改是早于当前时间,这样设置就和你想要缓存有点矛盾了,
    不过即使这样图片也应该会缓存的啊你还是用Firebug仔细看一下再说吧,或者你把你的URL放出来
      

  7.   

    我已经安装了firebug了,查看了hao123的和我的网站的头部信息,发现确实不一样,
    hao123的图片显示确实缓存了
    如下是他的图片头部信息:
    Date Wed, 24 Dec 2008 04:08:19 GMT
    Server Apache/2.2.4 (Unix) PHP/5.1.4
    Connection close
    Etag "5e800b-403-44dc7b8bbf900"
    Expires Sat, 22 Dec 2018 04:08:19 GMT
    Cache-Control max-age=315360000如下是sinhii。com的图片的头部信息
    Last-Modified Tue, 09 Dec 2008 12:05:48 GMT
    Accept-Ranges bytes
    Etag "5c16d79f659c91:8fce"
    Server Microsoft-IIS/6.0
    X-Powered-By ASP.NET
    Date Wed, 24 Dec 2008 04:09:37 GMT我的图片显示确实没有缓存,那我该怎么做到让图片和js css文件的缓存呢???难道是因为我的页面是用php页面,用了header函数输出头部信息??一定要静态页面才可以实现图片和js css文件的缓存吗???、
      

  8.   

    我是做的一个导航网站:http://www.sinhii.com
    网高手指点!!
      

  9.   

    这个在 apache 可以设置
      

  10.   

    1.
    .htaccess 文件2.
    自己用php输出档案,在输出时加header3.
    由客户端自动缓存
      

  11.   

    我已经header输出了仍然没有用,只能实现页面的文本缓存,不能实现图片、css、js文件的缓存$time = mktime(date('H')+8,date('i'),date('s')+2,date('m'),date('d'),date('Y'));
    $time2 = mktime(date('H')+8,date('i'),date('s')+86400,date('m'),date('d'),date('Y'));
    header('Cache-Control: max-age=604800');
    header('Expires: '.gmdate('D, d M Y H:i:s',$time2).' GMT');
    header('Last-Modified: '.gmdate('D, d M Y H:i:s',$time).' GMT'); .htaccess文件的配置,我用的虚拟主机,不知道怎样配置!
      

  12.   

    你的  header('Last-Modified: '.gmdate('D, d M Y H:i:s',$time).' GMT'); 
    还是存在?   
    有这句当然每次都会重新请求了,你把这句去掉或者改了
      

  13.   

    $time = mktime(date('H')+8,date('i'),date('s')+2,date('m'),date('d'),date('Y'));
    $time2 = mktime(date('H')+8,date('i'),date('s')+86400,date('m'),date('d'),date('Y'));
    header('Cache-Control: max-age=604800');
    header('Expires: '.gmdate('D, d M Y H:i:s',$time2).' GMT');
    header('Last-Modified: '.gmdate('D, d M Y H:i:s',$time).' GMT'); 
    这些都不要试试看,一般浏览器会自动缓存的。
      

  14.   

    一般情况下,浏览器会自动缓存页面元素(图,js,css等)。文件没有过期,缓存没有过期,文件版本(Etag)没有变更的情况下不会再次下载。
    动Etag的话,虚拟主机可能无解。主机支持.htaccess否,支持mod_expire否?