精华内容
下载资源
问答
  • <... <... <...link rel="stylesheet" type="text/css" href="style/style.css?...script language="javascript" type="text/javascript" src=...请问禁止浏览器缓存的方法还需要怎么设置 上面的设置还是不管用 谢谢
  • 1)在ajax发送请求前加上 anyAjaxObj.setRequestHeader("If-Modified-Since... 4)在URL后面加上时间戳:"nowtime=" + new Date().getTime() 5)在jq ajax下,使用 $.ajaxSetup({cache:false}) 这样就不会保存缓存记录

    1)在ajax发送请求前加上 anyAjaxObj.setRequestHeader("If-Modified-Since","0")

    2)在ajax发送请求前加上 anyAjaxObj.setRequestHeader("Cache-Control","no-cache")

    3)在URL后面加上一个随机数: "fresh=" + Math.random();

    4)在URL后面加上时间戳:"nowtime=" + new Date().getTime()

    5)在jq ajax下,使用 $.ajaxSetup({cache:false}) 这样就不会保存缓存记录

    展开全文
  • 如下是工作中所总结出来的问题: 1、优化浏览器 1)针对每个页面独有的样式建议分页面名称来写样式,因为所有的样式都写到一个样式文件中,那样页面会很大下载的时候就 会消耗时间。 2)因为样式的渲染是从右往...

    如下是工作中所总结出来的问题:

    1、优化浏览器

          1)针对每个页面独有的样式建议分页面名称来写样式,因为所有的样式都写到一个样式文件中,那样页面会很大下载的时候就            会消耗时间。

          2)因为样式的渲染是从右往左的,所以在元素的选择器最好要具有该元素的特殊型,不至于选择器要一层一层的网上查找。

          3)针对相对路径和绝对路径的使用,如果网页和资源在同一服务器中,建议使用相对路径,否则使用绝对路径;

               原因:A、因为相对路径长度要比绝对路径的长度要端,所以阅读要容易的多,解析的时候要快捷写;

                         B、如果使用绝对路径的话,浏览器要要根据DNS去查找服务器的真实位置,然后在转移到该服务器并查找所请求的                             文件。但是相对路径的话,浏览器只在同一服务器中查找所请求的文件,这样就省去了浏览器要根据DNS查找服                               务器真实位置的工作,降低了浏览器的效率。

          4)设置字体样式时,如果设置多个字体样式(斜体、粗体、小型大写、字体大小、字体)等,建议使用字体的简写属性(font),因为如果每个样式单独来写的话,那么浏览器会多次去解析字体样式,所以简写会提高浏览器的性能。

          5)可以将图片整理为雪碧图、将JS/CSS文件进行压缩

    2、浏览器缓存问题

          1)引用样式文件时在其文件名后加一个时间戳

          2)调用API时可以在url后面加一个版本号

    3、浏览器兼容性问题

          1)png24格式的图片在IE6浏览器中透明度失效,解决方法:

    方法1:可以使用png8格式,但是这种方法会导致其他浏览器中的图片失真,清晰度不高,而且图片边缘有瑕疵
    
    方法2:使用DD_belatedPNG_0.0.8a-min.js该js来解决IE6不支持24png格式
    css中的hack条件方式:
    <!--[if IE 6]>
    	<script type="text/javascript" src="js/DD_belatedPNG_0.0.8a-min.js"></script>
    	<script type="text/javascript">DD_belatedPNG.fix("div,img,a,h1");</script>
    <![endif]-->

          2)针对高度塌陷问题,IE6可以开启hasLayout属性,使用方法{zoom:1};

     

    展开全文
  • 如何解决浏览器缓存

    2017-09-07 14:39:46
    这个问题其实是浏览器缓存了css,js,和图片所造成的 解决方案: 1:如果你是前后端分离的开发模式,那么使用webpack等打包工具生成md5就可以解决了,这个方案是目前的主流方法。 但是,现在还存在大部分并非是...

    你是否遇到过:改了css,改了js,替换了图片,但是没有生效的情况呢?

    这个问题其实是浏览器缓存了css,js,和图片所造成的

    解决方案:

    1:如果你是前后端分离的开发模式,那么使用webpack等打包工具生成md5就可以解决了,这个方案是目前的主流方法。


    但是,现在还存在大部分并非是前后端分离的项目需要我们维护

    那么,我们可以通过使用一些脚本语言来动态改变对应url的版本号来解决


    贴上php代码:


    <?php
    /* 
    Creat by xiaolu289 2017/9/7 11:19
    该脚本解决更换图片后浏览器还是旧图片的问题
    */
    $baseDir = __DIR__;
    $publicDir = "{$baseDir}/Public";
    $viewDir = "{$baseDir}/Application/Home/View";
    $cssDirs = array(
    "{$publicDir}/css",
    "{$publicDir}/mobile/css",
    );
    $imgReg = "/([\w-]+\.(?:png|jpg|gif))(?:\?[\w]+=[\w]+)?/";
    $cssReg = "/([\w-]+\.(?:css))(?:\?[\w]+=[\w]+)?/";
    $VERSION = time();
    /* 
    队列方式遍历文件夹
    参考链接:http://blog.csdn.net/nuli888/article/details/52144752
    */
    function read_dir_queue($dir){
        $files=array();
        $queue=array($dir);
        while($data=each($queue)){
            $path=$data['value'];
            if(is_dir($path) &&$handle=opendir($path)){
                while($file=readdir($handle)){
                    if($file=='.'||$file=='..')
                        continue; 
                    $files[] = $real_path=$path.'/'.$file;
                    if (is_dir($real_path))
                        $queue[] = $real_path;
                } 
            } 
            closedir($handle);
        } 
        return $files;
    }
    // 遍历所有css目录
    foreach($cssDirs as$item){
        $cssFiles = read_dir_queue($item);
        foreach($cssFiles as$item){
            if(is_file($item)){
            // 设置版本号
            $fileContent=file_get_contents($item);
            file_put_contents($item,preg_replace($imgReg,"$1?v={$VERSION}",$fileContent));
            }
        }
    }
    // 遍历view目录
    $viewFiles=read_dir_queue($viewDir);
    foreach($viewFiles as$item){
        if(is_file($item)){
            // 设置版本号
            $fileContent=file_get_contents($item);
            $fileContent=preg_replace($imgReg,"$1?v={$VERSION}",$fileContent);
            file_put_contents($item,preg_replace($cssReg,"$1?v={$VERSION}",$fileContent));
        }
    }
            

    展开全文
  • 解决浏览器缓存问题

    2015-11-02 22:10:47
    如何解决浏览器缓存问题,看例子. 2,例子 一个访问页面计数器的小例子(效果:每点击一次按钮,访问次数+1).不多做解释,直接运行,看运行效果. (1)代码 AJAXNew.html中: [html] view ...

    1,引题

       什么是缓存,就不用解释了, 大家在更新CSDN博客时经常遇到的问题,很头疼. 如何解决浏览器的缓存问题,看例子.

    2,例子

    一个访问页面计数器的小例子(效果:每点击一次按钮,访问次数+1).不多做解释,直接运行,看运行效果.

    (1)代码

    AJAXNew.html中:

    [html] view plaincopy在CODE上查看代码片派生到我的代码片
    1. <html>  
    2.     <head>  
    3.         <title></title>  
    4.         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
    5.         <script type="text/javascript">  
    6.            var cachexmlhttp;     
    7.            function cache(){  
    8.                //创建XMLHttpRequest对象  
    9.                if(window.XMLHttpRequest){  
    10.                    //IE7、IE8、FireFox、Mozilla、Safari、Opera  
    11.                    cachexmlhttpnew XMLHttpRequest();  
    12.                    if(cachexmlhttp.overrideMimeType){  
    13.                        cachexmlhttp.overrideMimeType("text/xml");  
    14.                    }  
    15.                }else if(window.ActiveXObject){  
    16.                    //IE6,IE5.5,IE5  
    17.                    var activexName=["MSXML2.XMLHTTP.60","MSXML2.XMLHTTP.5.0",  
    18.                        "MSXML2.XMLHTTP.4.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP",  
    19.                         "Miscrosoft.XMLHTTP"];  
    20.                     for(var i=0;i<activexName.length;i++){  
    21.                         try{  
    22.                             cachexmlhttp=new ActiveXObject(activexName[i]);  
    23.                             break;  
    24.                         }catch(e){  
    25.                               
    26.                         }                      
    27.                     }                  
    28.                }   
    29.                if(cachexmlhttp===undefined || cachexmlhttp===null){  
    30.                    alert("当前浏览器不支持创建XMLHttpRequest对象,请更换浏览器");  
    31.                    return;  
    32.                }  
    33.                //2,注册回调方法  
    34.                cachexmlhttp.onreadystatechange=function(){  
    35.                    if(cachexmlhttp.readyState===4){  
    36.                        if(cachexmlhttp.status===200){  
    37.                            var message=cachexmlhttp.responseText;  
    38.                            var div=document.getElementById("cachemessage");  
    39.                            div.innerHTML=message;  
    40.                        }  
    41.                    }  
    42.                };  
    43.                 
    44.                //3,设置和服务器端交互的相应参数——Get方式  
    45.                cachexmlhttp.open("GET","Cache",true);  
    46.                  
    47.                //4,设置向服务器端发送的数据,启动和服务器端的交互  
    48.                cachexmlhttp.send(null);  
    49.            }  
    50.              
    51.         </script>       
    52.     </head>  
    53.     <body>  
    54.         <div id="message"></div>  
    55.         <br/>  
    56.       <input type="button" onclick="cache();" value="测试缓存问题"/>  
    57.         
    58.       <div id="cachemessage"></div>  
    59.     </body>  
    60. </html>  

    Cache.java(一个Servlet)中:

    [java] view plaincopy在CODE上查看代码片派生到我的代码片
    1. import java.io.IOException;  
    2. import java.io.PrintWriter;  
    3. import javax.servlet.ServletException;  
    4. import javax.servlet.annotation.WebServlet;  
    5. import javax.servlet.http.HttpServlet;  
    6. import javax.servlet.http.HttpServletRequest;  
    7. import javax.servlet.http.HttpServletResponse;  
    8.   
    9. /** 
    10.  * 
    11.  * @author xuemin 
    12.  */  
    13. @WebServlet(urlPatterns = {"/Cache"})  
    14. public class Cache extends HttpServlet {  
    15.     protected void processRequest(HttpServletRequest request, HttpServletResponse response)  
    16.             throws ServletException, IOException {  
    17.         response.setContentType("text/html;charset=UTF-8");  
    18.         PrintWriter out = response.getWriter();  
    19.         try {  
    20.            Integer counter = (Integer)request.getSession().getAttribute("Counter");  
    21.              if(counter ==null){  
    22.                  counter = 0;  
    23.              }else{  
    24.                 counter++;  
    25.              }  
    26.              request.getSession().setAttribute("Counter",counter);  
    27.              out.println("当前计数器的值为:"+counter);  
    28.         } finally {              
    29.             out.close();  
    30.         }  
    31.     }  

    (2)运行(IE中)

    IE中运行后,打开HttpWatch  Basic(前提是安装了HttpWatch Basic);

    观察第一次点击“测试缓存问题”按钮和第二次点击的 ResultURL有什么不同?


     

    点击第一次:


     

    点击第二次:


    (而,按我们代码所期望,第二次点击后的运行结果应该是:当前计数器的值为1为什么仍未0?)

     

    3,分析问题

    HttpWatch Basic中观察:


    ——很明显第二次访问的是缓存,因为两次访问的URl一样,第二次访问时,缓存中存在,所以不会创建新的请求,而直接从缓存中读取,所以就有了缓存问题。

     

    4,解决问题

    如何解决?

    ——增加时间戳。

    关键代码:

    if(url.indexOf("?")>=0){

          url=url+"&t="+(newDate()).valueOf();

     }else{

             url=url+"?t"+(newDate()).valueOf();

     }

    修改function cache()中的代码:


    IE中运行,查看运行结果:

     

    点击第一次:


     

    点击第二次:


     

    HttpWatch Basic中观察:


    ——两次请求均创建,两次请求URL不同;缓存问题解决。

     

    5,总结:

    (1)解决浏览器缓存问题:

    ——增加时间戳。

    关键代码:

    if(url.indexOf("?")>=0){

          url=url+"&t="+(newDate()).valueOf();

     }else{

             url=url+"?t"+(newDate()).valueOf();

     }

    (2)学会使用HttpWatch Basic

    展开全文
  • ImageUrl中加了秒是为解决浏览器缓存图片的问题 <dx:ASPxImage AlternateText="照片" HelpText="仅支持JPG、BMP格式,最大不超过1MB的图片" ImageUrl='<%# (Eval("文件路径")==null?"":Eval("文件路径")....
  • 如何让发布到线上的 vue 单页应用能及时更新到浏览器,而无需用户强制刷新页面呢? 因为 js、css、图片等资源文件名带有 hash 值,只要文件名变了就会更新,所以可以设置缓存,但 html 文件名没有加 hash 值,所以...
  • 使用AJAX不能忽略的的问题?一文教你AJAX如何解决浏览器缓存问题
  • <meta http-equiv="pragram" content="no-cache"> , no-store, must-revalidate"> 在nginx.... } 在开发中使用sessionStorage而不是localStorage存储信息,代码部署更新之后刷新页面或者重新打开一个页面就可以清缓存
  • 解决浏览器缓存

    2015-07-29 12:19:30
    我们在实际编码和调试的过程中经常发生我们已经修改过代码和逻辑,但是刷新页面还是没有变化,实际上是变化了的,只不过浏览器自作聪明,将我们的前面几次的访问的内容给缓存起来了,如何解决这个问题呢?...
  • 浏览器缓存问题

    千次阅读 2014-05-20 01:35:57
    本专题主要讲的是如何更好地使用浏览器缓存,同时包括了一些今后浏览器缓存的发展趋势,如:globalStorage等。 影响浏览器本地缓存的因素及解决方案 因素:子域名 具体描述:berg.sharej.com/img/123.gif 这个...
  • 在网上搜浏览器缓存问题时,遇上了很多问题。一是不知道应该用何种关键字搜索,二是一搜出来,就全是讲的是如何禁用浏览器缓存的方案。 作为大型点的FLASH WEBGAME来说,不缓存显然是不行的。总体上来说,我们要...
  • 当技术人员对这些静态文件修改并传到服务器之后,有时客户端这边访问还是没有效果,必须Ctrl+F5强制刷新多次才有效,这往往因为浏览器缓存了css、js等静态文件所造成,解决浏览器缓存这个问题的方法便是在后面加上...
  • nodejs+gulp内网前端项目代码打包解决手动清空浏览器缓存问题项目介绍打包工具选择环境搭建如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何...
  • 当年在深圳那家公司的时候,我就把如何禁用浏览器缓存的代码写到一张纸上,并称此为葵花宝典,任何人遇到解决不了的奇怪问题的时候,我的第一句建议就是参见葵花宝典,禁用浏览器缓存。 郁闷的是,今天居然还是被...
  • 如何清空Microsoft Edge浏览器缓存 1.在浏览器右上方点击图示位置的图标。 2.然后在其下方会出现列表,往下拉动列表至最下方找到【设置】按钮,并点击它 3.进入到浏览器的设置页面,滚动设置页面,在设置页面中...
  • 使用wepack 如何处理打包自己的js文件和...如何解决每次迭代浏览器缓存问题,将打包后的文件加后缀hash值,这样每次打包hash值都不一样,这样就解决浏览器的缓存问题啦 详情请看如下链接,我这也是看别人的(惭愧啊) ...
  • 浏览器缓存小结

    2021-04-01 14:27:37
    浏览器缓存是前端优化的一个重要手段,缓存可以带来很多好处: ...这种情况如何解决呢? 浏览器缓存主要是指http缓存,其机制是根据http报文的缓存标识进行相应的操作。 状态码 含义 200 from memory c
  • 浏览器缓存问题

    2018-03-19 22:02:25
    一、开发者在调试时如何禁止页面缓存,从而保证获取到最新数据在做web开发中,经常遇到这样的问题:已经修改完css样式或者js代码,F5刷新浏览器,发现刚修改完的代码并没有生效,这个大家都知道是缓存造成的,浏览器...
  • 如何解决前端页面缓存问题

    千次阅读 2021-02-06 18:27:10
    如何解决前端页面缓存问题 众所周知,前端浏览器与服务器之前存在着“强制缓存”和“协商缓存”(对此不了解的可以查看其他博主的博文),如果不加以处理的话,每次部署后,js、css、图片甚至是html都会有缓存问题,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 487
精华内容 194
关键字:

如何解决浏览器缓存问题