Windows 8 在DOMContentLoaded或onactivated事件之后调用WinJS.UI.processAll()

Windows 8 在DOMContentLoaded或onactivated事件之后调用WinJS.UI.processAll(),windows-8,winjs,Windows 8,Winjs,我看到的大多数MSDN WinJS应用程序示例在应用程序的激活后调用WinJS.UI.processAll()。我还看到许多非MSDN教程在DOMContentLoaded事件后调用WinJS.UI.processAll() 有什么实际的理由使用一种方法而不是另一种方法吗?这是一个时间问题;我个人称之为DOMContentLoaded: WinJS.Utilities.ready().done(function() { WinJS.UI.processAll(); }); 其中一个主要

我看到的大多数MSDN WinJS应用程序示例在应用程序的
激活后调用
WinJS.UI.processAll()
。我还看到许多非MSDN教程在
DOMContentLoaded
事件后调用
WinJS.UI.processAll()


有什么实际的理由使用一种方法而不是另一种方法吗?

这是一个时间问题;我个人称之为DOMContentLoaded:

WinJS.Utilities.ready().done(function() {
    WinJS.UI.processAll();
});
其中一个主要原因是,您可以将承诺返回给激活处理程序(在模板中看到的
setPromise
调用),以便启动屏幕保持稍长时间,直到
WinJS.UI.processAll
完成。这样可以更好地从splashscreen过渡到完整的内容,而不会看到部分构建的UI


但是,如果您的UI根据激活类型进行更改,那么您可能希望延迟此操作,直到您构建了DOM为止。由于您需要激活类型来实现这些差异,因此需要在激活事件引发后调用它。

这是一个时间问题;我个人称之为DOMContentLoaded:

WinJS.Utilities.ready().done(function() {
    WinJS.UI.processAll();
});
其中一个主要原因是,您可以将承诺返回给激活处理程序(在模板中看到的
setPromise
调用),以便启动屏幕保持稍长时间,直到
WinJS.UI.processAll
完成。这样可以更好地从splashscreen过渡到完整的内容,而不会看到部分构建的UI

但是,如果您的UI根据激活类型进行更改,那么您可能希望延迟此操作,直到您构建了DOM为止。由于您需要激活类型来实现这些差异,因此需要在引发激活事件后调用它