我写了一个小HTML5页面,我需要能够支持多种语言。我已经通过使页面将JSON文件加载到内存(在HEAD中)然后运行jQuery命令来根据需要更改任何元素的文本来实现语言控制。
一切正常,只是因为更改被称为后期渲染(如果文档就绪功能),随着语言的变化会有轻微的闪烁。
在呈现页面之前是否有一个事件被调用但在DOM可用之后?如果没有,是否有任何改变实施的建议。
干杯..
更新
我在其他网站上找到了一些答案。普遍的共识似乎是,这是不可能的,因为大多数浏览器在解析时呈现。建议的解决方法是在脚本中隐藏(显示:'none')主体,然后在文档就绪功能中更新后显示它(显示:'')。虽然不是100%完美,但它对我有用。
答案 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?