【问题标题】:F5 not fully refreshing my pageF5 没有完全刷新我的页面
【发布时间】:2011-12-14 00:14:00
【问题描述】:

我有一个非常复杂的网页,它使用了大量的 Ajax 和 Javascript。我的问题是这个 Javascript 操作 div 中的背景图片(将其滚动到两侧)。当我按下 F5(主要是在 FF 中)时,这只会导致“中途”刷新。内容刷新,但 div 中的背景保持在同一位置。这会导致问题,因为偏移量计算错误(脚本认为背景在起始位置,但实际上它已移动)。

有没有办法强制完全刷新来解决这个问题?我正在为我的 Javascript 使用 jQuery。一种解决方法是在加载时检查偏移量,但此时实施起来会很麻烦。

有什么想法吗?

编辑:导致此问题的图片未使用 javascript 或 ajax 加载。它是纯静态的 html。

【问题讨论】:

  • 也许您设置了一些不应该缓存的东西?也许可以通过 Tamper-Data firefox 插件查看您的网站使用的资源的标题。
  • 与其在加载时检查偏移量,为什么不明确地将其重置为您希望加载时(或准备好文档)的位置?
  • 好吧@nnnnnn,这将是我的解决方法。问题是当页面完全刷新时,这不是问题。所以我只是想检查是否有可能在刷新时设置一个 even-listener,以确保它已完全完成。

标签: javascript jquery html refresh


【解决方案1】:

尝试使用“Ctrl + F5”,它将强制您的浏览器重新加载页面中的所有内容。

【讨论】:

  • 虽然在某些情况下(我在 CKEditor 中看到过,当我更改了其中的一些 JS 文件时),您可能需要清除所有缓存,因为 CTRL+F5 不适用到自加载文件(使用 AJAX 或在 IFRAME 内)。 CTRL+SHIFT+DEL > 清除所有缓存。
  • 不错的评论,如果你使用大量的 Ajax 调用,有时它很有用
  • 我知道这一点,但是对于使用此页面的用户,他们很可能只是按 F5,然后就会出现此问题。
【解决方案2】:

为什么不在页面加载时将背景状态重置为默认状态? 有什么理由不工作吗?

$(document).ready(function(){
  // Set whatever value you're changing to make the background move to it's default
  $('.changing-background').css({
    'left' : ?px,
    'background-position' : ?px ?px
    // Whatever you're using

  })
})

【讨论】:

  • 你说得对,这就是我最终得到的解决方案。我面临的问题是所有使用 jQuery (position().left, css('margin-left')) 等的位置跟踪,一直给我 0。我只是在加载时强制 position-left 为 0px。解决了我的问题。
【解决方案3】:

在 javascript 文件路径的末尾添加一个唯一的字符串,例如test.js?nocache=99999999。这会让浏览器认为它是一个非缓存文件,并且每次都下载一个新副本。

这意味着更多的数据传输,但除非您想实现客户端修复,否则我认为这里没有太多选择。

【讨论】:

  • 到目前为止,我认为这是唯一可行的建议。问题是 js 文件的长度超过 1400 行,我想避免使用该选项。除非我寻求解决方法,否则这听起来像是解决问题的方法。
  • 它不会“每次都下载一个新副本”,只会在每次更改“?”之后的字符串时。修改js文件内容时,只需要在“?”后面的数字上加一,然后浏览器会重新下载一次,一次,直到你再次修改数字为止。
【解决方案4】:

如果您只是按 F5 它将从缓存中加载内容。因此请使用 " Ctrl+F5 " 。它还会在重新加载时刷新浏览器缓存。

【讨论】:

  • 我知道这一点,但是对于使用此页面的用户,他们很可能只是按 F5,然后就会出现此问题。
【解决方案5】:

在 Mozilla Firefox 中,Ctrl+Shift+P 开始隐私浏览,并且没有任何内容被缓存。或者您可以将 cache:false 设置为您的 ajax 请求,例如

$.ajaxSetup({
cache:false
});

添加no-cache

<META HTTP-EQUIV="Pragma" CONTENT="no-cache">

更多信息可以找到here

【讨论】:

  • 我知道这一点,但是对于使用此页面的用户,他们很可能只是按 F5,然后就会出现此问题。
  • 感谢您的意见。但是导致此问题的背景图像未使用 ajax og javascript 加载。图片是纯静态html。我也许应该在我的第一篇文章中澄清这一点。
  • 我累了,它没有用,但我自己解决了我的问题。无论如何,谢谢。
猜你喜欢
  • 1970-01-01
  • 2011-05-13
  • 1970-01-01
  • 2023-03-27
  • 2017-11-27
  • 1970-01-01
  • 1970-01-01
  • 2012-09-12
  • 2018-10-06
相关资源
最近更新 更多