在渲染之前更新HTML5页面文本

时间:2013-08-13 12:06:02

标签: javascript jquery html5

我写了一个小HTML5页面,我需要能够支持多种语言。我已经通过使页面将JSON文件加载到内存(在HEAD中)然后运行jQuery命令来根据需要更改任何元素的文本来实现语言控制。

一切正常,只是因为更改被称为后期渲染(如果文档就绪功能),随着语言的变化会有轻微的闪烁。

在呈现页面之前是否有一个事件被调用但在DOM可用之后?如果没有,是否有任何改变实施的建议。

干杯..

更新

我在其他网站上找到了一些答案。普遍的共识似乎是,这是不可能的,因为大多数浏览器在解析时呈现。建议的解决方法是在脚本中隐藏(显示:'none')主体,然后在文档就绪功能中更新后显示它(显示:'')。虽然不是100%完美,但它对我有用。

2 个答案:

答案 0 :(得分:1)

听起来你遇到了FOUC(Flash Of Unstyled Content)的问题

有几种方法可以解决这个问题。你可以把它添加到你的身体:

<body class="fouc">

然后有这个CSS:

.fouc{display:none;}

最后这个脚本:

$(function(){
      $('.fouc').show();
});

这可以通过最初隐藏页面来实现,然后在准备好后,使用javascript打开它。您可能需要确保在$('.fouc').show();来电之前进行操作。

答案 1 :(得分:0)

一个有效的解决方案,虽然不是您可能正在寻找的解决方案,但是使用OUTPUT BUFFERING ... What is output buffering?