我创建了一个页面,其中包含一个基于JQuery UI函数的对话框。我使用JQuery的开箱即用功能完成了这个操作......没有任何特殊之处。以下是对话框的HTML:
<div id = "myDialog">
<!-- ... more html in here for the dialog -->
</div>
然后在JavaScript中调用jQuery将<div>转换为对话框:
// pruned .js as an example of kicking up a JQuery dialog
$('#myDialog').dialog({
autoOpen: false,
title: 'Title here',
modal: true
}
});
这里使用了简单纯粹的 JQuery。你可以通过在父页面上点击链接来启动向导,然后它会生成一个包含大量 HTML(包括图像等)的 JQuery 对话框。
随着我不断开发这个页面,我开始注意到当我在浏览器中加载页面时,我放置在 JQuery 中会转换为对话框的 <div> 标签会非常短暂地显示出来。然后页面就会按预期运行。换句话说,对话框没有被隐藏,而是在页面内以行内元素的形式短暂地显示出来。相当丑陋和不专业!但在一瞬间之后,页面会正确地呈现出来,并且看起来正如我所期望/想要的那样。
随着页面大小的增长,页面保持不正确渲染的时间也越来越长。我猜测浏览器的呈现引擎正在加载页面时渲染页面,然后在最后启动将 <div> 转换为对话框的 JQuery。由于我将 autoOpen 属性设置为 false,因此该 JQuery 函数会将简单的 <div> 转换为 JQuery 对话框并将其隐藏起来。某些浏览器<咳嗽>IE</咳嗽> 显示时间比其他浏览器更长。我的大型对话框现在导致页面不正确地呈现约 1 秒钟... 奇怪!