gpt4 book ai didi

javascript - WinJS 在启动时加载配置数据

转载 作者:行者123 更新时间:2023-11-29 20:03:08 24 4
gpt4 key购买 nike

我正在使用 HTML/CSS/JS 和 WinJS 框架开发适用于 Windows 应用商店的应用程序。

我的应用程序需要在启动时加载配置数据,如果在线则通过网络加载,如果不在线则通过本地加载。

我的问题是,理想情况下,应用程序应该只显示带有进度控件的初始屏幕,直到数据加载完毕。但我不知道在哪里放置我的加载代码来完成它。

我可以这样做:

(function () {
"use strict";

WinJS.Binding.optimizeBindingReferences = true;

var app = WinJS.Application;
var activation = Windows.ApplicationModel.Activation;
var nav = WinJS.Navigation;

function loadConfig() {
return WinJS.xhr({ url: myURL }).then(
function (xhr) {
// parse response stuff
},
function (xhr) {
// do error handling stuff
}
);
}

function initializeUI(args) {
// The generated code for setting up the navigation controller, but moved to a seperate function
args.setPromise(WinJS.UI.processAll().then(function () {
if (nav.location) {
nav.history.current.initialPlaceholder = true;
return nav.navigate(nav.location, nav.state);
} else {
return nav.navigate(Application.navigator.home);
}
}));
}

app.onactivated = function (args) {
if (args.detail.kind === activation.ActivationKind.launch) {
if (args.detail.previousExecutionState !== activation.ApplicationExecutionState.terminated) {

loadConfig().then(
function () {
initializeUI(args);
}
);
}
if (app.sessionState.history) {
nav.history = app.sessionState.history;
}
if ( config ) // check if configuration exists to prevent calling this twice
initializeUI(args)
}
};
app.start();
})();

但是在加载数据之前,这会显示我的“default.html”页面,因此我必须在“default.html”中使用我的初始图像并插入进度控件。

我觉得这不是解决我的问题的正确方法?

最佳答案

您的解决方案看起来不错。你应该看看 extended splash screen sample以获得设置扩展启动画面的正确感觉,使其无缝。

你觉得哪里不对?

另一个建议的调整:改变你的 loadConfig 调用,总是返回一个 promise ,即使数据存储在本地;这样,您的代码可以以相同的方式流动,您永远不需要您的

if(config) {
initializeUI(args);
}

代码。

关于javascript - WinJS 在启动时加载配置数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13397067/

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