我是新来的应用程序,并且我确信,这是回答这样的地方但我还没有找到

我下载的应用程序2.0蚀插件,并高兴地看到它带有一个 启动项目.

然而,我感到惊讶的是,运行时,有一个unpleasent闪烁的...

  1. 该文本载荷,而不CSS第一
  2. 它需要一段时间,直到该选择框出现

(如果你没有看到闪烁,尝试和新闻 F5 刷新)

所有成熟的应用程序的应用程序似乎有一个装载之前,但是我没有找到一个简单、标准的方式来增加。

看来这个程序负荷,在这种秩序:(纠正我请如果我是混合起来,其只是我的猜)

  • 基本布局HTML,
  • 所有JavaScript和CSS
  • 运行逻辑上"加载"事件(快的时间你编javaScript可以启动?)

所以我不能编程方式添加一个载微调之前的应用程序载有点抓住22于我

我错过一些基本的东西?是有一个最好的实践方式来增加,初步微调?

我想简单地添加一个div与animated gif,并在加载事件-把它藏起来。

但我敢肯定有更好的东西。

让我知道如果这是一个重复问题


更新:发现了这个 相关的问题, 不回答我,但...

有帮助吗?

解决方案

我已经处理这个问题之前通过不使用应用程序模块载CSS,但它直接加载的标记本身。如果你这样做,浏览器将总是载CSS第一,甚至在应用程序JS加载。

这意味着你会失去一位的灵活性和速度,但其唯一的解决方法,我已经使用为止。

编辑:额外的信息,因为我想要赏金:D

如果不删除的 <inherits name='com.google.gwt.user.theme.standard.Standard'/> 从你的module.gwt.xml 文件的,则应用程序标准的主题是装在JS文件,该文件应用程序造成的。这JS文件加载后HTML网页使,并注CSS后负荷。因此闪烁。

为了避免的闪烁,可以评论的了,线和插入您自己的样式表入 <head> 你HTML文件。这将确保你的CSS负荷之前HTML呈现,避免任何闪烁。如果你真的想要的应用程序的主题,你把它弄出来的 源代码.

使用一个微调与应用程序是相当容易的。一个简单的方法就是保持在一个div id在HTML文件本身。然后在 onModuleLoad(), ,只是隐瞒,div通过调用 RootPanel.get("spinner").setVisible(false);

这应该表现出微调,直到应用程序负荷本身。

其他提示

我们这么做实行微调。

你把东西如下HTML下脚本行,你的申请(即。一个与nocache.js).例如:

    <div id="loading">
        <div id="loading-msg">
            <img src="icons/loading-page.gif" lt="loading">
            <span>Loading the application, please wait...</span>
        </div>    
    </div>

然后你用你到达入口点进入网页使用DOM和消除这div。例如

final RootPanel loading = RootPanel.get("loading");
if (loading != null) {
    DOM.removeChild(RootPanel.getBodyElement(),
                    loading.getElement());
}

Ehrann:我怕的做法在上面提到的答案是唯一的方法。应用程序不提供类似的功能,显示一个"装载"框架"飞"。我猜的一个原因是,这一要求不是以"共同"用于所有应用程序的用户,一个人可能会想要一个非常不同风格的"装载"比其他人。所以你必须做的是,通过自己。

你可以看看GXT展网页(基础上应用程序太): http://www.extjs.com/explorer/ 对于他们如何这样做。对于它的来源,下载电话分机应用程序2.1.0,包括SDK在这里: http://www.extjs.com/products/gxt/download.php 和检查样品/资源管理器文件夹后提取。详情见的编辑下:

编辑

检查的源代码 http://www.extjs.com/examples/explorer.html 你可以看到一个div id"装载".对于每一个样品(延伸视),GXT.hideLoadingPanel(loadingPanelId)是所谓的onAttach()(初始化),其中隐藏了载的框架。

检查的源代码的视 在这里,

检查的源代码的GXT.hideLoadingPanel 在这里,

您可以做它以类似的方式。

你可以把一个HTML加载的信息在主页(使用的风格属性或嵌入式标记的标题,以确保它的风格),并删除该信息一旦你的模块已载入,e。g。文件。获得().getBody()。setInnerHTML("")。后(),然后你本应用编程方式但是你想要的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top