前台请求一系列参数...有个callback回调参数
我在请求页
<%@ OutputCache Duration="3600" VaryByParam="imgpath;imgwidth;imgheight" %>这样数据是能缓存了。。但是callback这个参数的值也是缓存的值了。callback是请求带过来的参数。我只要用Request.Questring["callback"]取到直接响应回去就OK。这样一来。如果 VaryByParam="imgpath;imgwidth;imgheight"这个3个参数跟之前请求有一样的。
那callback就是缓存里面的数据了。
而不是当前请求的参数了。应该怎么做。就是callback不用缓存。而其他数据是要缓存。
缓存刚接触。不知道有没有表达清楚。
谢谢。。

解决方案 »

  1.   

    这里发言,表示您接受了CSDN社区的用户行为准则。
      

  2.   

    这里发言,表示您接受了CSDN社区的用户行为准则。
      

  3.   

    在客户端的触发callback的javascript代码中,你可以随机生成一个参数,例如:/abc.aspx?imgheight=124&random=298jsadkf3892432sk例如使用当前客户端的时间(至少精确到秒)来产生random的值也可以。
      

  4.   

    那我这里是否要加;VaryByParam="imgpath;imgwidth;imgheight" random这个参数呢。
    如果是那每次都不一样。
    如果不加。加了有何作用。。传入的一系列参数imgpath;imgwidth;imgheight 只要这3个值得一样就取缓存的数据,
    但rallback是要取每次传过去的返回给JS。
    就是rallback的问题。
      

  5.   

    onclick="this.src='a.aspx?time=' + Math.random();" 
    启动页面高速缓存,VaryByParam是页面在内存中刷新的条件,只要这些参数变化就刷新,这些参数都是Request.querystring参数
      

  6.   

    你们还不知道我的意思吧?imgpath;imgwidth;imgheight这3个参数不变。除了rallback返回的值是每次接受的值。其他都从缓存中获取。如第一次请求:
    a.aspx?imgpath=http://www.baidu.com&imgwidth=12&imgheight=12&rallback=tosee1
    如第二次请求
    a.aspx?imgpath=http://www.baidu.com&imgwidth=12&imgheight=12&rallback=tosee2
    上次2个请求imgpath;imgwidth;imgheight这3个参数值都一样。所以返回的数据都是缓存中的。
    但rallback例外。。要把tosee2响应回去。
      

  7.   

    如第一次请求:
    a.aspx?imgpath=http://www.baidu.com&imgwidth=12&imgheight=12&rallback=tosee1
    如第二次请求
    a.aspx?imgpath=http://www.baidu.com&imgwidth=12&imgheight=12&rallback=tosee2你这2次请求的结果都是缓存里的?请求的地址改变是不会缓存的。
    不行的话你就按照楼上几位的方法 再加个参数 用来做时间戳 每次地址都不同 就不会缓存了