2 onclick JavaScript code is executed 3 JavaScript prepares ajax request based on process and current HTML DOM tree 4 onstart JavaScript code is executed 5 JavaScript sends ajax request from client to server 6 JSF retrieves ajax request 7 JSF processes the request lifecycle on JSF component tree based on process 8 actionListener JSF backing bean method is executed 9 action JSF backing bean method is executed 10 JSF prepares ajax response based on update and current JSF component tree 11 JSF sends ajax response from server to client 12 JavaScript retrieves ajax response 13 if HTTP response status is 200, onsuccess JavaScript code is executed else if HTTP response status is 500, onerror JavaScript code is executed 14 JavaScript performs update based on ajax response and current HTML DOM tree oncomplete JavaScript code is executed