Dans l'approche classique, la navigation se fait en cliquant sur des liens ou en appuyant sur des boutons de formulaires. A chaque fois une nouvelle page est visitée. De temps en temps une interaction AJAX peut venir enrichir cette navigation.
À l'autre extrême, dans une application JS, une seule page est chargée et l'utilisateur ne la quitte pas. L'utilisateur interagît avec cette page de manière complexe. Ces interactions sont gérées en JS avec des appels AJAX fréquents.