1

当我加载我的页面时,在 Dart 开始修改内容之前,我会看到原始页面(仅一小段时间)。我该如何避免这种情况?

示例

文件index.html

<html>
    <head>
        <script type="application/dart" src="app.dart"></script>
        <script src="packages/browser/dart.js"></script>
    </head>
    <body>

    </body>
</html>

文件app.dart

main(){
    var d = new DivElement(); 
    d.text = "This is a test";
    query('body').append(d);
}

在这个例子中,我首先会看到一个空白页,然后不久之后,会看到文本“这是一个测试”。我只想看文字。

4

2 回答 2

4

该页面将在文本之前显示,因为您的 Dart 代码将在初始渲染之后运行(至少通常是这样)。您可以在文档顶部应用一些白色层,并在完成 Dart 代码后将其移除:

<body>
  <div id="overlay" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: white; z-index: 1000000;"></div>
</body>

然后当你的 Dart 代码准备好展示应用程序时:

query('#overlay').remove();

现在您将看到一个空白页面,直到 Dart 代码准备好显示某些内容。

于 2013-05-16T10:15:42.497 回答
0

如果您在正文的最开始加载 JS 脚本,它将在页面加载之前执行。所以,你会这样做:

<html>
    <head>...</head>

    <body>
        <script src="packages/browser/dart.js"></script>
        <script type="application/dart" src="app.dart"></script>    
    </body>
</html>

那应该行得通。如果没有,Dart 内部可能发生了一些事情,这导致了这种情况。

于 2013-05-16T05:54:06.213 回答