页面在同一浏览器中刷新时呈现不同

Posted

技术标签:

【中文标题】页面在同一浏览器中刷新时呈现不同【英文标题】:Page renders differently on refresh within same browser 【发布时间】:2013-07-04 05:28:28 【问题描述】:

我有一个不寻常的问题让我发疯!我还没有找到与这个确切问题相关的问题。

我的网站上有一个页面,其中某些元素在随机页面加载时呈现不正确。例如,使用 chrome,页面将正常呈现,但在多次刷新后,标题中的基本 ul 将向下移动到正文中。有时轮播不会出现,或者导航块会滑到下一行。我也在 Firefox 上复制了这种行为。

我真的无法提供任何人都可以查看的 sn-p 代码,因为我不知道问题出在哪里。有问题的页面是 www.Calibru.com 的索引。 真正令人惊奇的是,通过使用 Chrome 开发工具,我可以将 display:none 设置为不正确的 ul,然后将 display 设置为正常,并且 ul 会再次呈现它应该在的位置。这向我表明,完全相同的 html 和 css 以某种方式呈现不同(无论使用任何脚本)。

另外,这不是服务器的问题。我在本地运行代码时遇到了同样的问题。

有人知道这里发生了什么吗?

【问题讨论】:

如果您在 chrome web 工具中禁用缓存或使用新浏览器打开页面,问题是否仍然存在? 可能是您在页面完全加载之前刷新? IE。当启动脚本仍在运行时等。 很难说,但在首页禁用缓存时,该问题似乎不太常见。有趣的是,当以这种方式查看时,问题也开始出现在站点内的其他页面上。 刷新页面前的时间不影响渲染。 你只有两个版本吗?正确和“奇怪”对吗?这些“随机”页面,它们是否有机会发布响应? (由于提交带有method=POST的表单而显示的页面)如果是这样...我现在遇到了这个问题,这很奇怪! (GET 看起来正确,POST 不正确) 【参考方案1】:

我认为这个问题与浮动和幻灯片 javascript 有关。

每当我在实时网站上触发布局错误时,都会伴随第一张幻灯片无法正确呈现。这将导致<div id="r1"> 的高度为0,这反过来似乎会加剧上述浮动错误。浮动的<ul> 和不浮动的<a> 之间似乎有些紧张。

这是对我有用的解决方案:

index.html 中添加一个类(或您喜欢的 ID)以允许您定位 CSS 中的链接。在这个例子中,我只是简单地给了它一个logo的类:

<a class="logo" href="index.html">
  <img src="images/Calibrus_logo.png"  border="0">
</a>

然后,在你的 CSS 中:

// target the link using your chosen selector
.logo 
  display: block;
  float: left;

添加这些规则后,我无法再复制渲染错误。


旁注:

我建议在使用 &lt;meta charset="utf-8"&gt; 开头的 &lt;head&gt; 标记之后声明您的字符编码。

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>Calibrus</title>

此外,图像的border 属性已过时。所以而不是:

<img src="images/Calibrus_logo.png"  border="0">

只需使用 CSS 定位 &lt;img&gt; 并声明:

.logo img 
  border: none;

【讨论】:

以上是关于页面在同一浏览器中刷新时呈现不同的主要内容,如果未能解决你的问题,请参考以下文章

刷新与调整浏览器窗口大小时网格布局呈现不同

是否可以在同一应用程序中浏览不同的子域或基本 URL 而无需在 React 中刷新页面?

Edge浏览器呈现页面错误,但在单击刷新后正确显示

在页面刷新时设置 selectBooleanCheckbox 的值

浏览器兼容问题收藏

加载新页面后未呈现文本 - JQuery Mobile