【问题标题】:How to show a window in the fastest way possible?如何以最快的方式显示窗口?
【发布时间】:2011-08-17 02:49:22
【问题描述】:

我的 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');

【问题讨论】:

    标签: javascript windows performance optimization xul


    【解决方案1】:

    你能做原生代码吗?
    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>
    

    【讨论】:

    • 是的,我可以编写本机代码(xpcom),但是如何为这个函数指定要在窗口中加载的 xul 文件的路径?另外,我会试试小透明窗口的方法,谢谢!
    • 是的,我真的不知道,但我认为这可能会为您指明正确的方向。
    【解决方案2】:

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

    【讨论】:

    • 其实不是,它们是小信息窗口(弹出窗口),需要显示在任何其他打开的窗口前面。
    • 将窗口移到屏幕外的方法的复杂之处是焦点,窗口可能变成焦点,用户不知道焦点在哪里。也许如果我也可以将窗口切换为可聚焦/不可聚焦..
    • 实际上,对于我的 3 个窗口之一,一个弹出窗口,它可以工作,因为它永远不会获得焦点。但是对于其他两个窗口,我需要另一种方法。
    • 我想你尝试了以下方法:window.onfocus = function() if (window.isHiddenOutsideScreen) window.blur(); // 或 mainWindow.focus();或 windowThatShouldBeFocused.focus();
    【解决方案3】:

    我不确定这是否是您想要的,但可以暂时隐藏一个窗口,以便在您需要时可以再次显示它。有关总体思路,请参阅nsMsgComposeService::ShowCachedComposeWindow

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-26
      • 2018-01-06
      • 1970-01-01
      • 2015-03-15
      • 1970-01-01
      相关资源
      最近更新 更多