gpt4 book ai didi

javascript - GWT:在页面准备好之前开始运行(或者正文资源不阻止运行 gwt)?

转载 作者:搜寻专家 更新时间:2023-11-01 04:19:27 28 4
gpt4 key购买 nike

在我的 html 页面中有外部图像和闪光灯,有时它们加载缓慢。我的 gwt 应用程序总是在加载后开始运行。我使用 xsiframe 链接器。

有什么方法可以在加载 body 中的任何图像和资源之前开始运行 gwt 吗?或者确保加载其他内容不会阻止启动 gwt。

编辑:我创建了一个重现问题的最小项目:

入口点:

public class MyEntryPoint implements EntryPoint {
public void onModuleLoad() {
Window.confirm("onModuleLoad");
}
}

html页面:

<html><head>
<script type="text/javascript"src="nocache.js"></script>
</head><body>
<!-- http://stackoverflow.com/questions/100841/artificially-create-a-connection-timeout-error -->
<img src="http://10.255.255.1/timeout.gif" alt="timeout image" />
</body></html>

最佳答案

我可以想到两种可能的解决方案:

1。 xs 链接器

您可以使用旧的“xs”链接器代替“xsiframe”。这不是很好,特别是因为 xs 在开发模式下不工作。但也许您可以在开发期间使用 xsiframe,然后切换到 xs 进行真正的构建、测试和生产。

2。 <noscript>标记技巧

您可以将页面内容(尤其是缓慢加载的图像)放入 <noscript> 中标记,如果浏览器不支持 JavaScript,则使用该标记。

但是,如果启用了 JavaScript,则在加载期间会忽略该标记的内容。因此,我们将在 GWT 代码(可以再次使用 xsiframe 链接器)中做的是将 noscript 标记的内容复制回真实页面。

这是一些快速代码:

<!doctype html>

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">

<script type="text/javascript" language="javascript"
src="http://cdn.example.org/.../some.nocache.js"></script>
</head>

<body>

<noscript>
<p>A</p>
<img src="http://10.255.255.1/timeout.gif" alt="timeout image" />
<p>B</p>
</noscript>

<p>Test (should appear immediately if JavaScript is enabled)</p>
</body>
</html>
@Override
public void onModuleLoad() {

final NodeList<Element> noscriptElems =
RootPanel.get().getElement().getElementsByTagName("noscript");

final Element noscriptElem = noscriptElems.getItem(0);

RootPanel.get().add(new Label("Here is GWT"));

RootPanel.get().add(new HTMLPanel(noscriptElem.getInnerText()));
/* Be careful of course, not to have bad html in your noscript elem */

}

关于javascript - GWT:在页面准备好之前开始运行(或者正文资源不阻止运行 gwt)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10581495/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com