我正在尝试为一个项目实现可切换的主题,它是一个 Mendix 项目,但让我们假设它是一个网站。
问题:
我需要通过单击按钮更改网站的颜色主题。所以基本上我需要所有元素在我单击按钮时从不同的变量集中获取颜色。
我在这里看到两个选项:
编译 2 个 css 文件并在它们之间切换:将所有 sass 文件链接到variables-1,编译 CSS 文件,然后将所有 sass 文件链接到variables-2,编译第二个 css 文件。单击按钮即可在它们之间切换。
在此选项中,颜色不会动态分配,每次进行更改时,我都必须手动将每个 sass 文件链接到不同的变量,或更改变量值,然后重新编译所有内容。此外,我将无法继续处理该项目并同时切换主题。
在 mixins 中预定义颜色主题,像本文一样为每个主题编译 css 类,并使用一些自定义 js 逻辑为元素分配相应的类。
很可能不会起作用,因为项目中的元素太多,并且为每个元素更改类太复杂了。
我怎么解决这个问题?
使用Mendix Business Modeler构建Web应用程序与使用Java/Spring/JSF等技术开发Web应用程序有着根本的不同.但是,为了这个问题,我将尝试比较两者:
在基于Java/Spring的应用程序中,我可以将我的应用程序与第三方产品Ehcache集成,以在方法级别缓存数据.例如,我可以配置ehcache来存储给定方法的返回值(具有特定的生存时间).每当调用此方法时,ecache将自动检查先前是否使用相同的参数调用了方法,以及缓存中是否存在存储的返回值.如果是这样,则永远不会实际执行该方法,而是立即返回缓存的方法返回值.
我希望在Mendix中具有相同的功能,但在这种情况下,我将缓存Microflow返回值.此外,我不希望被强制在整个地方添加操作,明确告诉Microflow检查缓存.我想在一个集中的地方注册我的Microflows进行缓存,或者只是标记每个Microflow进行缓存.换句话说,这个问题与Mendix中面向方面编程(AOP)的概念一样多,因为它是关于缓存的:有没有一种方法可以挂钩进入Microflow调用,以便我可以应用前后执行操作?在我看来,同样的原因也就是为什么AOP在Java中有它的目的.
我在 Mendix 中的错误栏列表似乎丢失了,因为我点击了错误的东西(我不知道)。由于我需要在我的程序开始工作之前找到错误,我该如何解决这个问题?