【问题标题】:Website flashes between loads网站在加载之间闪烁
【发布时间】:2016-07-07 16:57:47
【问题描述】:

我的website 在加载之间闪烁。我已经应用了this stackoverflow 问题中建议的方法,但没有运气。这三个页面中的每一个都加载一个nav.html 文件,其中包含:

$.get("nav.html", function(data){
    $("#nav-placeholder").replaceWith(data);
});

请查看 .html 代码的页面源代码。该网站是根据我的另一个问题here 以这种方式构建的:本质上我希望导航栏项目仅在一个文件中描述(nav.html)所以如果我选择对其进行任何更改,我只需要编辑一个文件。

【问题讨论】:

  • 这个 FOUC 是将包含逻辑放在客户端的主要问题。有没有办法可以使用服务器端包含?它将完全避免该问题,并为您节省网络带宽。
  • 我从你的上一篇文章来到这里。我建议您针对您的问题尝试我的解决方案(使用 PHP)。我认为它不会再闪烁,因为它与页面的其余部分同时加载。 link to my answer
  • @Relisora 谢谢。虽然当我在我的 Mac 上使用 php 时,我无法在本地查看网站 - php 似乎只有在服务器上运行时才能工作。
  • @OliverAngelil 您可以在 Mac 上使用 MAMP 在您的 PC 上创建本地服务器。效果很好
  • @Relisora 感谢您的建议。我在另一页回复了。

标签: javascript jquery html css


【解决方案1】:

这与网站/网络服务器的性能无关。

这是因为您为每个导航点加载了一个新的 html 文件。

要解决此问题,您需要异步获取新内容并替换页面上已加载的现有内容。这通常通过 Javascript 完成。 步骤将是

  • 1) 通过ajax加载外部html文件
  • 2) 用新加载的数据替换当前内容。

这也意味着您的网址永远不会改变。它将停留在 .../about.html

【讨论】:

    【解决方案2】:

    我在某处读到 ng-cloak 在这种情况下很有用,但没有对其进行研究....也许对您进行一些挖掘会很有用。 ngCloak docs

    【讨论】:

      猜你喜欢
      • 2012-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-21
      • 1970-01-01
      • 2013-11-27
      相关资源
      最近更新 更多