在使用 js 请求之前加载单独的 html 文件

Loading up separate html files before they are requested with js

所以我有 this 作为我的源代码,一切都很好,除了当我尝试用慢速互联网连接加载页面时。发生的情况是当前页面淡出并重新出现,并且在加载外部 html 文件的内容后,它就会弹出。

我试图通过在页面最初加载后加载所有内容来解决这个问题,这将如何工作?

主要 JS 脚本 link - here

比我的存储在变量中的评论建议更好的方法是在隐藏的 div 中呈现 HTML 并根据需要显示它们。这样你只渲染一次。

HTML

<div id="content">
    <div class="hidden" id="home"></div>
    <div class="hidden" id="news"></div>
    <div class="hidden" id="contact-us"></div>
</div>

CSS

.hidden { display: none }

现在在后台使用 .load() 填充 div。我会推迟加载,直到页面为用户准备好,这样您就不会阻止用户交互。然后,您的菜单点击将负责从每个 div 添加/删除 .hidden class。

我将此作为单独的答案发布,因为它侧重于您当前的方法。

不要使用 .load(),而是使用 .get(),这样它就不会立即替换 div 的内容。然后.fadeOut()div,替换HTML,成功后.fadeIn()

$.get("news.html", function(data) {
    $("#content").fadeOut(function() {
        $(this).html(data);
    }).fadeIn();
});

我只能使用慢速连接模拟器(Network Link Conditioner for Mac OS X)进行测试,但它 运行 对我的测试很顺利.