A non-transitory computer-readable medium having a computer program stored thereon and readable by a computer of a communication apparatus, the computer program, when executed by the computer, causing the computer to perform operations comprising:
- receiving an instruction from a server connected to a network;
- receiving an instruction from a path other than the server;
- executing a function in response to any of the following:
- receiving a first execution instruction from the server and receiving a second execution instruction from the path other than the server;
- displaying a display instruction correspondence screen on a display unit when receiving a display instruction from the server, and displaying an execution correspondence screen on the display unit when executing the function,
- during a time period while the display instruction correspondence screen is being displayed, displaying the execution correspondence screen on the display unit when receiving the first execution instruction from the server, but not displaying the execution correspondence screen on the display unit when receiving the second execution instruction from the path other than the server;
- storing display instruction correspondence screen data which is screen data for displaying the display instruction correspondence screen, and execution correspondence screen data which is screen data for displaying the execution correspondence screen;
- controlling the screen data storage unit to store the screen data in a stack data structure;
- displaying a screen based on screen data stacked at a top of the stack data structure of the screen data storage unit;
- storing stackable information representing, on each of the screen data, which screen data is allowed to be stacked,
- wherein when a trigger of attempting display of another screen on the display unit occurs, stacking screen data for displaying the another screen at the top of the stack data structure or removing screen data stacked at the top of the stack data structure,
- further storing screen data different from the display instruction correspondence screen data and different from the execution correspondence screen data,
- wherein when the stackable information represents that the screen data stacked at the top of the stack data structure allows the screen data for displaying the another screen to be stacked thereon, executing a process of stacking the screen data for displaying the another screen at the top of the stack data structure,
- wherein when the stackable information does not represent that the screen data stacked at the top of the stack data structure allows the screen data for displaying the another screen to be stacked thereon, not executing the process of stacking the screen data for displaying the another screen at the top of the stack data structure,
- wherein the stackable information does not represent that the display instruction correspondence screen data allows the execution correspondence screen data to be stacked thereon,
- wherein when the display instruction is received from the server, stacking screen data, for which the stackable information represents that the screen data allows the execution correspondence screen data to be stacked thereon, at the top of the stack data structure, and then stacking the display instruction correspondence screen data at the top of the stack data structure, and
- wherein when the first execution instruction is received from the server, removing the screen data stacked at the top of the stack data structure.