有没有办法在属于您的Worklight应用程序的HTML(或其他)资源中执行“最后一分钟”替换?
例如,我想根据最终用户的区域设置在lang
元素上设置dir
和<html>
属性。
一些背景:
我意识到我可以进行动态DOM操作,但我的问题更多来自客户端 - 服务器架构的背景,在服务器端你有机会在HTML(或其他资源)中替换一些变量等在请求者的上下文中。我们已经有了一个现有的应用程序,我正在调查将它与工作灯集成所需的内容,包括(出于性能原因)将文件从服务器端移动到客户端而不会导致对当前代码进行过多的重构。
答案 0 :(得分:0)
任何基本的DOM操作都会有所帮助。这是D3.js
的一个例子<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>D3 Test</title>
<script type="text/javascript" src="d3.js"></script>
</head>
<body>
<script type="text/javascript">
d3.select("html").attr("lang","en_EN");
</script>
</body>
</html>
答案 1 :(得分:0)
更新:根据您的问题编辑,我认为以下内容不会对您的应用产生任何重大影响。既然你说你可以将文件从服务器移动到客户端,这意味着网络流量和今天的设备,我怀疑这可能会提升性能而不是惩罚。
我建议如果以上是您打算做的话,请尝试以下方法。
我甚至不确定你甚至会从服务器那样做什么 - 从服务器更改基于用户设备本地的应用程序的 UI。对我来说远程做这件事没有多大意义。
要回答您的问题,我会提供一些相关的背景信息,我认为这些信息可以在这种情况下获得良好的用户体验(我认为):
默认情况下,一旦框架加载完毕,Worklight就会关闭启动画面。
但是,如果您使用的是Worklight 6.2,则可以使用扩展的启动画面功能在较长时间内显示启动画面,在此期间您可以执行所需的任务 - 例如根据用户的语言环境。完成后,您可以自行以编程方式关闭启动画面。
阅读材料:
示例:
您需要在常见\ js \ initOptions.js中取消注释以下内容:
// # To disable automatic hiding of the splash screen uncomment this property and use WL.App.hideSplashScreen() API
//autoHideSplash: false,
然后,您可以在准备好时关闭启动画面:
function wlCommonInit() {
function changeUiBasedOnLocale();
...
...
}
function changeUiBasedOnLocale() {
... // get device local
... // use JS to alter CSS
WL.App.hideSplashScreen();
}