对于许多应用程序,尤其是在低性能计算机上,使用内置组件(例如Loader
和Image
)设置以异步加载其资源是有益的。要做到这一点,有两个明显的选择:
asynchronous: true
AsyncXXX
:AsyncXXX.qml:
XXX {
asynchronous: true
}
其中XXX为Loader
或Image
。
我想知道为什么默认情况下它们没有设置为异步模式。
最重要的是,有没有办法 - 环境变量,全局设置 - 将内置组件的默认行为更改为异步组件,从而避免使用自定义组件?
答案 0 :(得分:3)
您可以轻松制作CDATA
和ASLoader
QML类型ASImage
和Loader
Image
,并在整个项目中使用这些类型。这将使您无需在任何地方修改它,如果您想要覆盖它,您只需在原型中更改它。
我想知道为什么默认情况下它们没有设置为异步模式。
异步总是更复杂,开销更大,所以如果它不是默认行为则有意义。从我看到的QML代码来看,同步的使用频率远高于异步,因此使异步默认变得毫无意义。
编辑:
如果将原型绑定到项目范围的属性(例如上下文属性或asynchronous: true
中的属性),您还可以在运行时期间实现同步和异步行为之间的切换。