Hi Cuong Cao,
As in the Traditional Application, You need the values from a Sql Query to update Icon Color,
1) Instead of Calling the Query in the Screen Preparation ,Call it and Save locally on some button click in the Previous Screen and pass it as an Input parameter to the next Screen --you don't need to call the Query in Screen Preparation
2) Usually Page Render would be in Sync with the Preparation Flow End ,No Issue with User Experience even if the sql query takes time to Render---Use a Screen Loading Icon Or Image (with Boolean value set to display property) and Show the Screen Only after the Query returned the value (setting Boolean to true)
Hope it Helps!!