如何以最快的方式显示窗口?

时间:2011-05-02 16:38:03

标签: javascript windows performance optimization xul

我的Xulrunner应用程序中有3个主窗口,可以非常频繁地访问。应用程序在一个非常慢的系统上运行,所以在窗口出现之前,我看到一个完全黑色的盒子,然后出现窗口,填满那个黑色区域。

因为我在嵌入式系统中,并且没有显示“最小化”动画,所以我将窗口设置为最小化而不是关闭,但它仍然没有像我想要的那样快速显示。

有没有办法让窗口加载缓冲区以便更快地出现?或者,如何以最快的方式显示此窗口?

- 更新

顺便说一下,窗户没什么重要的。一个是带有“正在加载”标签的弹出窗口,我仍然需要花费很多时间(大约一秒钟)来显示:

<?xml version="1.0" encoding="UTF-8"?>

<!-- Style -->
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>

<window id="loadingWindow" hidechrome="true"
    xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">

    <vbox pack="center" align="center">
        <label id="textLabel">Loading...</label>
    </vbox>

</window>

我打开它:

openDialog("chrome://myapp/content/loading.xul", 'Loading', 'chrome, popup, centerscreen');

3 个答案:

答案 0 :(得分:3)

你可以用原生代码吗? createHiddenWindow()

或者,您可以玩creating a tiny, transparent window with the chrome hidden

这对于初学者来说并不完整:

<?xml version="1.0"?>
<!--<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>-->
<window xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" width="1px" height="1px" hidechrome="true" style="max-width:1px; max-height:1px; opacity:0">

<description>blar</description>

</window>

答案 1 :(得分:1)

你不能简单地换掉主窗口中的所有元素,并用要显示的窗口元素替换它们吗?或者,可能更好的是,用deck做类似的事情?

答案 2 :(得分:0)

我不确定这是你想要的,但是可以暂时隐藏一个窗口,这样当你想要它时你可以再次显示它。有关一般概念,请参阅nsMsgComposeService::ShowCachedComposeWindow