Question: what is the difference between action function and @remote action?
Answer: Remote Action is an Apex annotation used to mark a method as being available for javascript remoting. ... Remote Action methods have to update the DOM manually using explicit JavaScript. Remote Action methods can return data directly back to the calling JavaScript, but cannot update the page's view state.