当前位置: 首页 > 面试题库 >

防止AngularJS中IE缓存的更好方法?

锺功
2023-03-14
问题内容

我目前使用service / $
resource进行ajax调用(在这种情况下为GET),并且IE缓存了这些调用,因此无法从服务器检索新数据。我使用了一种通过谷歌搜索发现的技术来创建一个随机数并将其附加到请求中,以便IE不会去缓存数据。

有没有比将cacheKill添加到每个请求更好的方法?

工厂代码

.factory('UserDeviceService', function ($resource) {

        return $resource('/users/:dest', {}, {
            query: {method: 'GET', params: {dest: "getDevicesByUserID"}, isArray: true }
        });

来自控制器的呼叫

$scope.getUserDevices = function () {
        UserDeviceService.query({cacheKill: new Date().getTime()},function (data) {
            //logic
        });
    }

问题答案:

根据binarygiant的要求,我将我的评论作为答案。我已经通过在服务器端的响应中添加No-
Cache标头来解决此问题。请注意,您只需要对GET请求执行此操作,其他请求似乎可以正常工作。

binarygiant在node / express上发布了如何执行此操作。您可以像这样在ASP.NET MVC中进行操作:

[OutputCache(NoStore = true, Duration = 0, VaryByParam = "None")]
public ActionResult Get()
{
    // return your response
}


 类似资料:
  • 我目前使用service/$resource进行ajax调用(在本例中是GET),IE缓存调用,以便无法从服务器检索新的数据。我使用了一种通过谷歌搜索找到的技术来创建一个随机数并将其附加到请求中,这样IE就不会为数据进行缓存。 还有比在每个请求中添加cacheKill更好的方法吗?

  • 问题内容: 这就是我们防止浏览器缓存JS和CSS文件的方式。这似乎有点hacky ..有更好的方法吗? 更新:我们要防止缓存的原因是为了确保在执行新发行版时加载较新版本的文件。 问题答案: 您希望缓存CSS和JS。当它们回来时,它加快了网页的加载。添加时间戳后,您的用户将不得不一次又一次下载它。 如果要确保它们始终具有新版本,则要使构建系统在文件末尾添加一个构建号而不是时间戳。 如果您只是在开发中

  • 问题内容: 我正在使用PHP开发一个简单的网站。 开发配置: WAMP 生产配置: LAMP 在测试时,我更改了CSS文件,但是当我重新加载页面时,我的浏览器(不确定)仍使用旧的缓存CSS。 我进行了一些谷歌搜索,发现了已经尝试过的其他解决方案 在CSS末尾附加查询 使用(在Firefox中)强制获取资源 禁用Firefox缓存以及使用Firefox加载项。 当这些都不起作用时,我做了更多的谷歌搜

  • 我发现了与jQuery相关的类似问题。我的目标是找出如何防止jQueryMobile和PhoneGap中的缓存(我使用JSONP)。我正在进行一些ajax调用,动态地填充listview。我想在每次初始化页面(pageinit)时查询web服务。在我的android设备上,在新的查询之后,每次我进入页面时,数据都会添加到listview中。它不会删除,每次我访问页面时,我都会添加一个副本。我认为这

  • 问题内容: 我已经编写了一个Linux驱动程序,该驱动程序ioremaps将特定设备的PCI BAR0导出为sysfs二进制属性,允许用户空间直接控制它。 当我尝试在属性顶部使用MMAP来直接访问该位内存(从Userland程序)时,问题就浮现了。读取可以很好地完成并返回期望值,尽管当我写入该内存时,它似乎被缓存在内核和内存之间的某个地方,而不是传递给GM​​CH根联合体(以及设备)。我想做的是每

  • 我有从我的网页生成的AJAX POST请求,可能有多个POST请求具有相同的POST数据。但是响应可能会有所不同,我希望确保我没有得到这些请求的缓存响应。我需要每个请求点击网页。 我假设对POST请求的响应不会被缓存,这对吗?