Best way to handle programming objects with chunk loading

I have a system that divides the world into chunks, and it will only keep the chunks near the player in the workspace and the rest will go to ReplicatedStorage. What I am wondering is for example, say I have a part and on the client I want to change its color every second. What would be the best/most performant way to go about this?

In this case the parts that are in replicated storage should not be changing color, because the player can’t see them.

I think that CollectionService might be the way to go here, but I’m not sure how best to actually make it do what I want.

Maybe make it change its color every second, as long as it is in workspace. For example:

local part = part--the part you want to change colors

while true do
	if part.Parent == game.Workspace then
		part.Color = Color3.new(math.random(1, 100)/100, math.random(1, 100)/100, math.random(1, 100)/100) --This picks a random color, feel free to change this to whatever color is needed
		wait(1)
	end	
end

Hope this helps
Edit: I just realized this should be done in a local script since its on the client