相关疑难解决方法(0)

如何在jQuery中重新加载/刷新元素(图像)

是否可以使用jQuery从服务器重新加载具有相同文件名的图像?

例如,我在页面上有一个图像,但是,物理图像可以根据用户操作而改变.注意,这并不意味着文件名更改,而是实际文件本身.

即:

  • 用户在默认页面上查看图像
  • 用户上传新图像
  • 页面上的默认图像不会更改(我假设这是由于文件名相同,浏览器使用缓存版本)

无论下面的代码被调用的频率如何,同样的问题仍然存在.

$("#myimg").attr("src", "/myimg.jpg");
Run Code Online (Sandbox Code Playgroud)

在jQuery文档中,如果它具有触发事件的默认方法而不是将回调函数绑定到元素的成功/完全加载,那么"load"函数将是完美的.

非常感谢任何帮助.

jquery

253
推荐指数
6
解决办法
28万
查看次数

在ASP.Net MVC和IIS 7.5中设置最佳的http缓存头和服务器参数

我有一个ASP.Net站点(碰巧是MVC,但这里没有关系),我想要缓存的几页很好.

具体来说,我想实现:

  1. 输出缓存在服务器上2个小时.
  2. 如果服务器上的文件内容发生更改,则应该为该页面刷新该输出缓存
  3. 在浏览器中缓存10分钟(即甚至不询问服务器是否新鲜)
  4. 当浏览器确实发出实际的后续请求时,我希望它使用etags,这样服务器如果没有修改就可以返回304.

(注意 - 以上时间值仅供参考)

  • 1)和2)我可以通过Response.Cache.SetCacheability(HttpCacheability.Server)来实现
  • 我知道3)可以通过使用max-age和cache-control实现:private
  • 我可以用Response.Cache.SetETagFromFileDependencies()发出etags;

但我似乎无法让所有这些东西一起工作.这就是我所拥有的:

    Response.Cache.SetCacheability(HttpCacheability.ServerAndPrivate);
        Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches);
        Response.Cache.SetETagFromFileDependencies();
        Response.Cache.SetValidUntilExpires(true);
        Response.Cache.SetMaxAge(TimeSpan.FromSeconds(60 * 10));
Run Code Online (Sandbox Code Playgroud)

我想要的场景可能吗?特别是:

  • 浏览器可以同时执行3)和4)吗?当Firefox在本地缓存中过期后发出新请求时,它确实发送了服务器之前响应的etag,但我得到了200响应.
  • 设置上面的变量,我在哪里设置输出缓存的持续时间?

谢谢你的任何提示!

asp.net asp.net-mvc caching outputcache http-headers

18
推荐指数
1
解决办法
1753
查看次数