(photo from http://www.intelegain.com).
There have been a lot of discussions on this topic. Below are some notes for my own reference.
Notes:
- Speed: SPA requires higher initial loading time, but after that, the loading time will be faster. In MPA, each page requires reloading of non-data parts even though these parts stay the same for all pages.
- Separation of front-end and back-end: In SPA, front-end and back-end are separated by default. Most (if not all) MPAs do not have clear separation of front-end and back-end. Therefore, it is easier to extend an SPA to a mobile application.
- SEO: It is easier for MPA to be optimized for search engines.
- JavaScript: SPA mainly relies on JavaScript. Browsers must enable JavaScript in order for it to work.
- Development time: SPA requires higher technical skills, therefore it may take longer development time. In addition, most IDEs do not support SPA. Therefore, developers have to rely on browser’s debugging tools.